2 回答
TA贡献1946条经验 获得超3个赞
两种解决方案
1、
如果参数比较少 直接url?parm=value,
那么就用@RequestParam注解
2、封装成对象
class A {
private String parm1;
private String parm2;
private List<B> list;
}
对应的前台
var data =new Object;
data.param1="value";
data.param2="value";
var list = new Array();
....省略list的数据初始化
data.list = list;
ajax的data
data:JSON.stringify(data)
TA贡献1776条经验 获得超12个赞
@ResponseBody 接收的是前台你用 JSON 传递过来的一个整体,所以你前台需要将 String 和 List 封装在一个对象里面。
var json = {};
json['content'] = content;
json['param'] = [{id: 1, name: "hello"}, {id: 2, name: "hello"}];
// ajax data
data:JSON.stringify(json)
后台接收的话,建议是写一个对象来接收比如,
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 来接收。
添加回答
举报