Spring接收List型参数
第一种形式:
提交的数据形式:id=1,2,3 --> urlEncoding --> id=1%2C2%2C3
1 <form method="post" action="http://localhost/ExamOnline/page/test/list2"> 2 3 id<input type="text" name="id"><br/> 4 id<input type="text" name="id"><br/> 5 id<input type="text" name="id"><br/> 6 <input type="submit"> 7 </form>
服务器可以对其进行接收用List或者字符串(List接收时,@RequestParam("id") 必不可少,不然报错)
List接收:
1 @RequestMapping("/test/list1") 2 @ResponseBody 3 public String testlist(@RequestParam("id") List<Integer> ids) { 4 5 for (Integer integer : ids) { 6 System.out.println(integer); 7 } 8 return "ok"; 9 }
字符串接收:
1 @RequestMapping("/test/list2") 2 @ResponseBody 3 public String testlist(String id) { 4 5 System.out.println(id); 6 return "ok"; 7 }
第二种形式:
提交数据格式:ques[0].id=1&ques[0].title=1&ques[1].id=2&ques[1].id=2 --> UrlEncoding转码 --> 省略
表单:
1 <form method="post" action="http://localhost/ExamOnline/page/test/list3"> 2 3 id<input type="text" name="ques[0].id"><br/> 4 name<input type="text" name="stu[0].title"><br/> 5 id<input type="text" name="ques[1].id"><br/> 6 name<input type="text" name="stu[1].title"><br/> 7 id<input type="text" name="ques[2].id"><br/> 8 name<input type="text" name="stu[2].title"><br/> 9 <input type="submit"> 10 </form>
后台:通过一个Bean封装进去
1 @RequestMapping("/test/list3") 2 @ResponseBody 3 public String testpojolist(RequestModel bean) { 4 5 for (Question q : bean.getQues()) { 6 System.out.println(q.getTitle()); 7 } 8 9 return "ok"; 10 }
1 //get、set函数必不可少,反射必用 2 public class RequestModel { 3 4 private List<Question> ques; 5 public List<Question> getQues() { 6 return ques; 7 } 8 public void setQues(List<Question> ques) { 9 this.ques = ques; 10 } 11 12 }
第三种形式:
前台提交json格式的数据,后台使用@RequestBody List<XX> 接收即可,js转换json数据不太方便,省略