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來接收。
具體如下:
前台代碼:
-
//發送請求到后台,帶數組形式的數據。
-
function testList() {
-
var data = getTreeViewCheckedData();
-
$.ajax({
-
url: APP_NAME + "xxxx/testList",
-
data: {
-
list:data
-
},
-
dataType: "json",
-
success: function (data) {
-
}
-
});
-
}
-
//獲得數據---以數組的形式存儲
-
function getTreeViewCheckedData() {
-
var checkedData = [];
-
$( '#shareSetting').find('ol.bonsai input:checkbox:checked').each(function () {
-
checkedData.push($( this).val())
-
}
-
);
-
return checkedData;
-
}
后台代碼:
-
//方式一:用list接收前台的數組參數。
-
-
-
public JsonResult testList(
-
return new JsonResult(true,"ok ",null);
-
}
-
-
//方式二:用數組接收前台的數組參數。然后轉化成list。
-
-
-
public JsonResult testList(
-
-
List<String> newList = Lists.newArrayList(Arrays.asList(list));
-
return new JsonResult(true,"ok ",null);
-
}
注意:
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+"";
}