SpringBoot如何接收數組參數的方法

1.創建一個表單實體類,將數組封裝到實體類中(Post提交)

表單類代碼:

@Data
public class MyForm {
  private int[] ids;
}

控制器代碼:

@Slf4j
@RestController
@RequestMapping("/info")
public class InfoController {
 
  @PostMapping("/test")
  public String test(@RequestBody MyForm form){
    log.info(Arrays.toString(form.getIds()));
    return "success";
  }
}

前端代碼:

wx.request({
   url:'http://localhost:8085/info/test',
   data:{
   ids:[1,2,3]
   },
   method:'POST',
   success:function(res){
   console.log(res);
   }
   })

2.通過方法內參數傳遞,註意!!!SpringBoot方法內接收數組時,數組在前端請求時必須將參數拼接在路徑裡提交才可以接收到。(Get提交)

後端代碼:

@Slf4j
@RestController
@RequestMapping("/info")
public class InfoController {
 
  @GetMapping("/test")
  public String test(int[] ids){
    log.info(Arrays.toString(ids));
    return "success";
  }  
}

小程序前端代碼:參數需拼接到路徑裡,並且要以GET方式提交

var ids = [1, 2, 3, 4]
  wx.request({
  url: 'http://localhost:8085/info/test?ids='+ids,
  method: 'GET',
  success: function(res){
  console.log(res);
  }
  })

請求頭: 

vue axios前端代碼(註意,數組需要調用encodeURIComponent進行編碼):

   test() {
    let ary = [1,2,3]
    let params = {
     ids:encodeURIComponent(ary),};
    that.$http.get("http://localhost:8085/info/test",{params}).then(res=>{
     if(res.code==0){
      that.$message.success('查詢成功')
     }else {
      that.$message.error(res.message||'查詢失敗')
     }
    }).catch(error=>{
     that.$message.error('查詢失敗')
    })
   }

註意!!!請求路徑中的參數必須跟上圖所示的一樣才能被接收到。

到此這篇關於SpringBoot如何接收數組參數的方法的文章就介紹到這瞭,更多相關SpringBoot接收數組參數內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: