zoukankan      html  css  js  c++  java
  • 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+"";

        }



  • 相关阅读:
    2020牛客寒假算法基础集训营3
    2020牛客寒假算法基础集训营2
    2020牛客寒假算法基础集训营1
    Educational Codeforces Round 81 + Gym 102267
    博客迁移到自己的WordPress站上
    HDU 5172 GTY's gay friends 线段树 or Hash
    HDU 3436 Queue-jumpers Splay
    HDU 1890 Robotic Sort Splay
    POJ 3468 A Simple Problem with Integers Splay
    BZOJ 1503 郁闷的出纳员 Splay
  • 原文地址:https://www.cnblogs.com/lyf906522290/p/13947018.html
Copyright © 2011-2022 走看看