不考慮再添加一個封裝類,后臺代碼就只能這樣,唯一的改變可以更改入?yún)⒌奈恢茫€有入?yún)⑸系淖⒔?,和方法上的注解,前臺應該怎么寫?
@ResponseBody
@RequestMapping(value = "add", consumes = "application/json; charset=utf-8")
public String add(@RequestBody String content, @RequestBody List<Tag> param) {
前臺:$.ajax({
type:"post",
url: 'add',
contentType:"application/json; charset=utf-8",
dataType:"json",
data:JSON.stringify({
content:"nihaoahaha",
param:[{id:1,name:"hello"},{id:2,name:"hello"}]
}),
success:function(data){
console.log(data);
}
})
如果我只接收一個list是正常的:后臺代碼:@ResponseBody
@RequestMapping(value = "add", consumes = "application/json; charset=utf-8")
public String add(@RequestBody List<Tag> param) {
System.out.println("param:" + param);
return "成功";
}
前臺代碼:$.ajax({
type:"post",
url: 'add',
contentType:"application/json; charset=utf-8",
dataType:"json",
data:JSON.stringify([{id:1,name:"hello"},{id:2,name:"hello"}]),
success:function(data){
console.log(data);
}
})
正常
2 回答

料青山看我應如是
TA貢獻1772條經(jīng)驗 獲得超8個贊
如果是單個參數(shù)用@RequestParam注解,一個對象或者集合就用 @RequestBody,
但是不建議@RequestBody和@RequestParam一起用,
你可以把content封裝到Tag對象里面加個非表字段注解@TableField(exist = false),
這樣傳參就只需要把參數(shù)都丟到Tag對象里,前后臺都方便,就容易多了。
比如:
Public class Tag{
private String 參數(shù)1;
private String 參數(shù)2;
@TableField(exist = false)//非表字段注解,不干涉數(shù)據(jù)庫操作
private String content;
getter..setter...
....
}
添加回答
舉報
0/150
提交
取消