2 回答

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊
兩種解決方案
1、
如果參數(shù)比較少 直接url?parm=value,
那么就用@RequestParam注解
2、封裝成對(duì)象
class A {
private String parm1;
private String parm2;
private List<B> list;
}
對(duì)應(yīng)的前臺(tái)
var data =new Object;
data.param1="value";
data.param2="value";
var list = new Array();
....省略list的數(shù)據(jù)初始化
data.list = list;
ajax的data
data:JSON.stringify(data)

TA貢獻(xiàn)1776條經(jīng)驗(yàn) 獲得超12個(gè)贊
@ResponseBody 接收的是前臺(tái)你用 JSON 傳遞過(guò)來(lái)的一個(gè)整體,所以你前臺(tái)需要將 String 和 List 封裝在一個(gè)對(duì)象里面。
var json = {};
json['content'] = content;
json['param'] = [{id: 1, name: "hello"}, {id: 2, name: "hello"}];
// ajax data
data:JSON.stringify(json)
后臺(tái)接收的話,建議是寫(xiě)一個(gè)對(duì)象來(lái)接收比如,
public class SomeModel {
private String content;
private List<Tag> param;
// getter and setter
}
controller
@RequestMapping(value = "add", consumes = "application/json; charset=utf-8")
public String add(@RequestBody SomeModel someModel) {
String content = someModel.getContent();
List<Tag> param = someModel.getParam();
}
或者可以偷懶,用 Map 來(lái)接收。
添加回答
舉報(bào)