亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java spring項目controller中接收一個string,和一個List為入參報錯,前端參數應該怎么傳?

java spring項目controller中接收一個string,和一個List為入參報錯,前端參數應該怎么傳?

LEATH 2019-02-17 00:26:20
只接收一個List作為入參的話不報錯,下方為代碼:前臺:$.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); } }) 后臺: @ResponseBody @RequestMapping(value = "add", consumes = "application/json; charset=utf-8") public String add(@RequestBody List<Tag> param) { System.out.println("param:" + param); return "成功"; } 前臺控制臺顯示的數據格式為:[{id: 1, name: "hello"}, {id: 2, name: "hello"}]0:{id: 1, name: "hello"}1:{id: 2, name: "hello"} 那如果我后臺想接受一個字符串和一個list該怎么寫呢, 后臺代碼改為:@ResponseBody @RequestMapping(value = "add", consumes = "application/json; charset=utf-8") public String add(@RequestBody String content, @RequestBody List<Tag> param) { 前臺應該怎么寫?
查看完整描述

2 回答

?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

兩種解決方案
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)
查看完整回答
反對 回復 2019-03-01
?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

@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 來接收。

查看完整回答
反對 回復 2019-03-01
  • 2 回答
  • 0 關注
  • 555 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號