SpringMVC用List接收請求參數


spring MVC后台處理數組對象。

如下兩種方法是相同的,但是參數好像只能是基本數據類型,不能是對象數組或者對象list(有待考證)

接收List<String>  list = “a,b,c,d”

  /**

         * 接收List<String>  list = “a,b,c,d”

         * 1、Request Parameters中list=a,b,c

         * 2、必須寫上@RequestParam("list")

         */

  1.  public String hey(String[] list) {}

       /**

         * 接收數組 list = “a,b,c,d”

         * 1、Request Parameters中list=a,b,c 即可成功接收

         */

    2 public String hi(@RequestParam("list") List<String> list) {}

 

接收list對象寫法如下所示,

使用JSON格式數據,如[{"a":"a","b":"b"}] 放在RequestBody中傳遞,

RequestHeader中需要有 Content-Type: application/json;charset=utf8

    public String test(@RequestBody List<ForListReceive> list) {}

    public String test(@RequestBody ForListReceive[] list) {}

 

 

 

 

 

 

 

 

 

list類型的參數,接收前台的數組值,實驗了一下,結果還真可以。
不用綁定到對象里面。
當然我這個是前台傳遞了個包含的是string的數組到后台,然后,后台用list來接收。
具體如下:

前台代碼:

  1.  
    //發送請求到后台,帶數組形式的數據。
  2.  
    function testList() {
  3.  
    var data = getTreeViewCheckedData();
  4.  
    $.ajax({
  5.  
    url: APP_NAME + "xxxx/testList",
  6.  
    data: {
  7.  
    list:data
  8.  
    },
  9.  
    dataType: "json",
  10.  
    success: function (data) {
  11.  
    }
  12.  
    });
  13.  
    }
  14.  
    //獲得數據---以數組的形式存儲
  15.  
    function getTreeViewCheckedData() {
  16.  
    var checkedData = [];
  17.  
    $( '#shareSetting').find('ol.bonsai input:checkbox:checked').each(function () {
  18.  
    checkedData.push($( this).val())
  19.  
    }
  20.  
    );
  21.  
    return checkedData;
  22.  
    }

后台代碼:

  1.  
    //方式一:用list接收前台的數組參數。
  2.  
    @RequestMapping(value = "/testList")
  3.  
    @ResponseBody
  4.  
    public JsonResult testList(@RequestParam(required = false, value = "list[]") List<String> list){
  5.  
    return new JsonResult(true,"ok ",null);
  6.  
    }
  7.  
     
  8.  
    //方式二:用數組接收前台的數組參數。然后轉化成list。
  9.  
    @RequestMapping(value = "/testList")
  10.  
    @ResponseBody
  11.  
    public JsonResult testList(@RequestParam(required = false, value = "list[]") String[] list){
  12.  
     
  13.  
    List<String> newList = Lists.newArrayList(Arrays.asList(list));
  14.  
    return new JsonResult(true,"ok ",null);
  15.  
    }

注意:

value = "list[],這個不能省略,這個list要和前台的傳入參數一樣

 

 

 

@RequestMapping(value="/getList", method= RequestMethod.GET)
@ResponseBody
public String getList (@RequestParam("list") List<String> list) {
return "Request successful. Post param : Map - " + list;
}

@RequestMapping(value="/getArray", method= RequestMethod.GET)
@ResponseBody
public String getArray (String[] list) {
return "Request successful. Post param : Map - " + list;
}

============================================================================================




@RequestMapping("/hello")

    public String test(@RequestBody List<ForListReceive> list) {

        /**

         * 接收List的條件

         * 1、使用JSON格式數據,如[{"a":"a","b":"b"}] 放在RequestBody中傳遞

         * 2、RequestHeader中需要有 Content-Type: application/json;charset=utf8

         * 3、需要在參數前加上@RequestBody

         */

 

        System.out.println(list.get(0).getA());

        return list.size()+":"+name;

}

 

@RequestMapping("/hello")

    public String test(@RequestBody ForListReceive[] list) {

        /**

         * 接收List的條件

         * 1、使用JSON格式數據,如[{"a":"a","b":"b"}] 放在RequestBody中傳遞

         * 2、RequestHeader中需要有 Content-Type: application/json;charset=utf8

         * 3、需要在參數前加上@RequestBody

         */

 

        System.out.println(list.get(0).getA());

        return list.size()+":"+name;

    }

 

 

    @RequestMapping("/hi")

    public String hi(@RequestParam("list") List<String> list) {

        /**

         * 接收List<String>  list = “a,b,c,d”

         * 1、Request Parameters中list=a,b,c

         * 2、必須寫上@RequestParam("list")

         */

        System.out.println(list.get(0));

        return list.size()+"";

    }

 

    @RequestMapping("/hey")

    public String hey(String[] list) {

        /**

         * 接收數組 list = “a,b,c,d”

         * 1、Request Parameters中list=a,b,c 即可成功接收

         */

        System.out.println(list[0].toString());

        System.out.println(list[1].toString());

        return list.length+"";

    }

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM