SpringMVC @RequestBody 415錯誤

開宗明義--解決辦法:

1、先排查字段拼寫錯誤等等問題
2幔嗦、補充一個比較坑的問題虎敦,查看如下兩個路徑的文件看看編譯文件有沒有更新游岳。

查看路徑

如果并未更新,清掉編譯文件:

清除路徑

3其徙、查看是否導入下列幾個包:

jackson-core-2.8.4.jar
jackson-annotations-2.8.4.jar
jackson-databind-2.8.4.jar

maven導入

    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.8.4</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>2.8.4</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.8.4</version>
    </dependency>

4胚迫、再補充一個:必須保證請求頭的Content-Type為application/json
即使用ajax的話,必須加上contentType : 'application/json'
如果使用Postman測試的話如下操作:
①唾那、在Headers添加:

請求頭

②访锻、在body中使用json傳值

body
詳解:

了解到@RequestBody的強大后自然想試一試,于是按照網上的方法試一試,感謝SpringMVC接收復雜集合參數
.jsp頁面:

      $("button").click(function(){
            var users = [];
            var user1 = {"userId":1,"userName":"abc","password":"addf","age":12};
            var user2 = {"userId":2,"userName":"abc2","password":"addf2","age":12};
            users.push(user1);
            users.push(user2);
            $.ajax({
                type: "POST",
                url: 'springmvc/testRequestBody.html',//后臺在類上加了/springmvc
                data : JSON.stringify(users),
                dataType:"json",
                contentType : 'application/json',
                success: function(data){
                    console.log(data);
                },
                error: function(res){
                    console.log(res);
                    console.log("fail");
                }
            });
        });

后臺代碼:

    private static final String SUCCESS = "success";
    @RequestMapping(value = "/testRequestBody")
    @ResponseBody
    public String testRequestBody(@RequestBody List<User> users){
        System.out.println(users);
        return SUCCESS;
    }

一期犬、發(fā)現(xiàn)問題

然而河哑,總是出現(xiàn)415錯誤,網上找了很久解決辦法龟虎,但是沒有找到有用的璃谨,故此只能去看看Spring的官方文檔,然后找到22.3.3. Defining @RequestMapping handler methods,再找到 Mapping the request body with the @RequestBody annotation(可以使用ctrl+f,快速定位^ _ ^)
看不了的鲤妥,點擊

其中最重要的是讓我發(fā)現(xiàn)HttpMessageConverters只有幾個默認的Converter佳吞,于是去看看我現(xiàn)在的Converter有沒有我想要的MappingJackson2HttpMessageConverter

注意:由于直接使用List<T> 接收會直接報415錯誤,所以后臺代碼和前臺代碼分別修改為如下棉安,即先只接收一個字符串:

//后臺:
    @RequestMapping(value = "/testRequestBody")
    @ResponseBody
    public String testRequestBody(@RequestBody String userName){
        System.out.println(userName);
        return SUCCESS;
    }

//.jsp:
        $("button").click(function(){
            $.ajax({
                type: "POST",
                url: 'springmvc/testRequestBody.html',
                data : {"userName":"test"},
                dataType:"json",
                contentType : 'application/json',
                success: function(data){
                    console.log(data);
                },
                error: function(res){
                    console.log(res);
                    console.log("fail");
                }
            });
        });

打上斷點底扳,查看如下:

查看過程

可以看到紅框中只有6個Converter,而且沒有我想要的MappingJackson2HttpMessageConverter贡耽,至此找到問題所在衷模。


二、解決問題

網上找到導入上述三個包即可加入MappingJackson2HttpMessageConverter菇爪,隨即嘗試算芯,
加入后再次debug查看:

加入jar包后再次查看

可以看到我想要的MappingJackson2HttpMessageConverter已經加入了,
再次將代碼修改為List<T> 接收凳宙,查看:

接收結果

有什么問題歡迎交流~~ (o^ _ ^o)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末熙揍,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子氏涩,更是在濱河造成了極大的恐慌届囚,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,222評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件是尖,死亡現(xiàn)場離奇詭異意系,居然都是意外死亡,警方通過查閱死者的電腦和手機饺汹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,455評論 3 385
  • 文/潘曉璐 我一進店門蛔添,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人兜辞,你說我怎么就攤上這事迎瞧。” “怎么了逸吵?”我有些...
    開封第一講書人閱讀 157,720評論 0 348
  • 文/不壞的土叔 我叫張陵凶硅,是天一觀的道長。 經常有香客問我扫皱,道長足绅,這世上最難降的妖魔是什么捷绑? 我笑而不...
    開封第一講書人閱讀 56,568評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮氢妈,結果婚禮上粹污,老公的妹妹穿的比我還像新娘。我一直安慰自己允懂,他們只是感情好厕怜,可當我...
    茶點故事閱讀 65,696評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蕾总,像睡著了一般。 火紅的嫁衣襯著肌膚如雪琅捏。 梳的紋絲不亂的頭發(fā)上生百,一...
    開封第一講書人閱讀 49,879評論 1 290
  • 那天,我揣著相機與錄音柄延,去河邊找鬼蚀浆。 笑死,一個胖子當著我的面吹牛搜吧,可吹牛的內容都是我干的市俊。 我是一名探鬼主播,決...
    沈念sama閱讀 39,028評論 3 409
  • 文/蒼蘭香墨 我猛地睜開眼滤奈,長吁一口氣:“原來是場噩夢啊……” “哼摆昧!你這毒婦竟也來了?” 一聲冷哼從身側響起蜒程,我...
    開封第一講書人閱讀 37,773評論 0 268
  • 序言:老撾萬榮一對情侶失蹤绅你,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后昭躺,有當地人在樹林里發(fā)現(xiàn)了一具尸體忌锯,經...
    沈念sama閱讀 44,220評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,550評論 2 327
  • 正文 我和宋清朗相戀三年领炫,在試婚紗的時候發(fā)現(xiàn)自己被綠了偶垮。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,697評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡帝洪,死狀恐怖似舵,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情碟狞,我是刑警寧澤啄枕,帶...
    沈念sama閱讀 34,360評論 4 332
  • 正文 年R本政府宣布,位于F島的核電站族沃,受9級特大地震影響频祝,放射性物質發(fā)生泄漏泌参。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,002評論 3 315
  • 文/蒙蒙 一常空、第九天 我趴在偏房一處隱蔽的房頂上張望沽一。 院中可真熱鬧,春花似錦漓糙、人聲如沸铣缠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,782評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蝗蛙。三九已至,卻和暖如春醉鳖,著一層夾襖步出監(jiān)牢的瞬間捡硅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,010評論 1 266
  • 我被黑心中介騙來泰國打工盗棵, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留壮韭,地道東北人。 一個月前我還...
    沈念sama閱讀 46,433評論 2 360
  • 正文 我出身青樓纹因,卻偏偏與公主長得像喷屋,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子瞭恰,可洞房花燭夜當晚...
    茶點故事閱讀 43,587評論 2 350

推薦閱讀更多精彩內容