最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用SpringMVC訪(fǎng)問(wèn)Controller接口返回400BadRequest

 更新時(shí)間:2022年03月15日 10:11:15   作者:思想永無(wú)止境  
這篇文章主要介紹了使用SpringMVC訪(fǎng)問(wèn)Controller接口返回400BadRequest,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

訪(fǎng)問(wèn)Controller返回400BadRequest

問(wèn)題

SpringMVC使用自定義類(lèi)型接收參數(shù)時(shí), form提交會(huì)返回400 Bad Request,controller接口里的方法沒(méi)有得到調(diào)用。

@RequestMapping(value = "/list.do", method = {RequestMethod.GET , RequestMethod.POST})
? ? public String list(Order param, HttpServletRequest request) {
? ? ? ? logger.info(JSONObject.fromObject(param).toString());
? ? ? ? Integer count = orderService.findCount(param);
? ? ? ? logger.info(count);
? ? ? ? param.setRows(count);
? ? ? ? List<Order> result = orderService.findByPage(param);
? ? ? ? logger.info(JSONArray.fromObject(result).toString());
? ? ? ? request.setAttribute("param", param);
? ? ? ? request.setAttribute("result", result);
? ? ? ? return "order/list";
? ? }
? ? <form action="<%=basePath%>order/list.do" id="myform" method="post" >
? ? ? ? <input type="hidden" name="currentPage" value="${param.currentPage}"/>
? ? ? ? <table>
? ? ? ? ? ? <tr>
? ? ? ? ? ? ? ? <td width="80" align="right">訂單狀態(tài): </td>
? ? ? ? ? ? ? ? <td>
? ? ? ? ? ? ? ? ? ? <select name="order_status" autoWidth="true" style="width:120px;">
? ? ? ? ? ? ? ? ? ? ? ? <option value="">全部</option>
? ? ? ? ? ? ? ? ? ? ? ? <c:forEach items="${order_status_map}" var="temp">
? ? ? ? ? ? ? ? ? ? ? ? ? ? <option value="${temp.key}" <c:if test="${temp.key == param.order_status}">selected="selected"</c:if>>${temp.value}</option>
? ? ? ? ? ? ? ? ? ? ? ? </c:forEach>
? ? ? ? ? ? ? ? ? ? </select>
? ? ? ? ? ? ? ? </td>
? ? ? ? ? ? ? ? <td align="right">訂單號(hào): </td>
? ? ? ? ? ? ? ? <td>
? ? ? ? ? ? ? ? ? ? <input type="text" name="order_no" id="order_no" onfocus="this.value=''" value="${param.order_no}" style="width:140px;"/>
? ? ? ? ? ? ? ? </td>
? ? ? ? ? ? </tr>
? ? ? ? ? ? <tr>
? ? ? ? ? ? ? ? <td width="80" align="right">創(chuàng)建時(shí)間: </td>
? ? ? ? ? ? ? ? <td><input type="text" class="date" name="createTimeStart" value="${param.createTimeStart}" style="width:120px;"/></td>
? ? ? ? ? ? ? ? <td align="center">&nbsp;至&nbsp;</td>
? ? ? ? ? ? ? ? <td><input type="text" class="date" name="createTimeEnd" ?value="${param.createTimeEnd}" style="width:120px;"/></td>
? ? ? ? ? ? ? ? <td><button><span class="icon_find">查詢(xún)</span></button></td>
? ? ? ? ? ? ? ? <td><button onclick="add();return false;"><span class="icon_add">添加</span></button></td>
? ? ? ? ? ? </tr>
? ? ? ? </table>
? ? </form>

直接在瀏覽器地址欄輸入<%=basePath%>order/list.do是可以訪(fǎng)問(wèn)的并查詢(xún)出數(shù)據(jù)的,我一開(kāi)始以為是get方法能訪(fǎng)問(wèn),post不能訪(fǎng)問(wèn),后來(lái)發(fā)現(xiàn),get使用Context-Type為application/x-www-form-urlencoded時(shí)也會(huì)訪(fǎng)問(wèn)不了,post使用使用application/json也能訪(fǎng)問(wèn)。

所以,這就需要修改form里的enctype屬性為application/json,但是enctype屬性只支持下面表格三種,

HTML form 標(biāo)簽的 enctype 屬性

描述
application/x-www-form-urlencoded在發(fā)送前編碼所有字符(默認(rèn))
multipart/form-data不對(duì)字符編碼。在使用包含文件上傳控件的表單時(shí),必須使用該值。
text/plain空格轉(zhuǎn)換為 “+” 加號(hào),但不對(duì)特殊字符編碼。

我試了下,text/plain和application/json具有同樣的效果。

雖然在form里加上enctype=”text/plain”可以解決接口返回400BadRequest的問(wèn)題,但是有新的問(wèn)題出現(xiàn):接口的參數(shù)Order param接受不到post提交的值,但是將參數(shù)直接拼接在url,Order param則可以接收到值,Order param

SpringMVC遇到的Http400BadRequest總結(jié)

在搭建SpringMVC環(huán)境,在使用中遇到了多次Bad Request的連接

下面來(lái)總結(jié)下

1.參數(shù)類(lèi)型不對(duì),如后臺(tái)實(shí)體類(lèi)的屬性為int,但傳來(lái)的參數(shù)為字符串

2.因?yàn)槲业拇中?,本?lái)是要通過(guò)Ajax獲得一個(gè)json串,但是后臺(tái)的方法在返回值類(lèi)型前沒(méi)有加@RequestBody注解

3.傳遞的參數(shù)為日期,spring不知道該以什么格式轉(zhuǎn)換為Date類(lèi)型,解決辦法為在實(shí)體類(lèi)的日期屬性上加上@DateTimeFormat(pattern="yyyy-MM-dd")注解即可

4.剛遇到的問(wèn)題,排查了好久終于知道是什么原因了,實(shí)體類(lèi)中有int類(lèi)型的屬性,但是前臺(tái)傳參時(shí)傳遞的樣子是這樣的"age=",并沒(méi)有給一個(gè)準(zhǔn)確的數(shù)字(age=18),所以導(dǎo)致Spring在對(duì)int型屬性進(jìn)行賦值時(shí)無(wú)法正確賦值

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Java ES多節(jié)點(diǎn)任務(wù)的高效分發(fā)與收集實(shí)現(xiàn)

    詳解Java ES多節(jié)點(diǎn)任務(wù)的高效分發(fā)與收集實(shí)現(xiàn)

    ElasticSearch 是一個(gè)高可用開(kāi)源全文檢索和分析組件。提供存儲(chǔ)服務(wù),搜索服務(wù),大數(shù)據(jù)準(zhǔn)實(shí)時(shí)分析等。一般用于提供一些提供復(fù)雜搜索的應(yīng)用
    2021-06-06
  • Java藍(lán)橋杯實(shí)現(xiàn)線(xiàn)段和點(diǎn)

    Java藍(lán)橋杯實(shí)現(xiàn)線(xiàn)段和點(diǎn)

    本文主要介紹Java藍(lán)橋杯實(shí)現(xiàn)線(xiàn)段和點(diǎn)的內(nèi)容,感興趣的小伙伴可以參考下文
    2021-08-08
  • springboot配置文件的加載順序解析

    springboot配置文件的加載順序解析

    這篇文章主要介紹了springboot配置文件的加載順序解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Spring中的set注入方法

    Spring中的set注入方法

    這篇文章主要介紹了Spring中的set注入方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 詳解redis與spring的整合(使用緩存)

    詳解redis與spring的整合(使用緩存)

    本篇文章主要介紹了redis與spring的整合(使用緩存),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • Java調(diào)用打印機(jī)的2種方式舉例(無(wú)驅(qū)/有驅(qū))

    Java調(diào)用打印機(jī)的2種方式舉例(無(wú)驅(qū)/有驅(qū))

    我們平時(shí)使用某些軟件或者在超市購(gòu)物的時(shí)候都會(huì)發(fā)現(xiàn)可以使用打印機(jī)進(jìn)行打印,這篇文章主要給大家介紹了關(guān)于Java調(diào)用打印機(jī)的2種方式,分別是無(wú)驅(qū)/有驅(qū)的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • 登陸驗(yàn)證碼kaptcha結(jié)合spring boot的用法詳解

    登陸驗(yàn)證碼kaptcha結(jié)合spring boot的用法詳解

    在一個(gè)web應(yīng)用中驗(yàn)證碼是一個(gè)常見(jiàn)的元素。不管是防止機(jī)器人還是爬蟲(chóng)都有一定的作用,下面這篇文章主要給大家介紹了登陸驗(yàn)證碼kaptcha結(jié)合spring boot用法的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-06-06
  • Spring boot啟動(dòng)流程之解決循環(huán)依賴(lài)的方法

    Spring boot啟動(dòng)流程之解決循環(huán)依賴(lài)的方法

    循環(huán)依賴(lài),指的是兩個(gè)bean之間相互依賴(lài),形成了一個(gè)循環(huán),spring解決循環(huán)依賴(lài)的方式是在bean的實(shí)例化完成之后,所以不要在構(gòu)造方法中引入循環(huán)依賴(lài),因?yàn)檫@時(shí)對(duì)象還沒(méi)有實(shí)例化,spring也無(wú)法解決,本文給大家介紹Spring boot循環(huán)依賴(lài)的解決方法,一起看看吧
    2024-02-02
  • 啟動(dòng)springboot項(xiàng)目時(shí)報(bào)錯(cuò):無(wú)法訪(fǎng)問(wèn)org.springframework.web.bind.annotation.GetMapping …具有錯(cuò)誤的版本 61.0,應(yīng)為52.0?的解決方案

    啟動(dòng)springboot項(xiàng)目時(shí)報(bào)錯(cuò):無(wú)法訪(fǎng)問(wèn)org.springframework.web.bind.annotatio

    這篇文章給大家分享了啟動(dòng)springboot項(xiàng)目時(shí)報(bào)錯(cuò):?無(wú)法訪(fǎng)問(wèn)org.springframework.web.bind.annotation.GetMapping …具有錯(cuò)誤的版本 61.0,應(yīng)為52.0?的解決方案,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • Java RSA加密解密實(shí)現(xiàn)方法分析【附BASE64 jar包下載】

    Java RSA加密解密實(shí)現(xiàn)方法分析【附BASE64 jar包下載】

    這篇文章主要介紹了Java RSA加密解密實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了java基于第三方類(lèi)庫(kù)javabase64-1.3.1.jar實(shí)現(xiàn)RSA加密解密功能的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-10-10

最新評(píng)論

乐都县| 铜鼓县| 陈巴尔虎旗| 普宁市| 东乡| 静乐县| 弥勒县| 吉林市| 凤城市| 沙湾县| 许昌市| 府谷县| 阿合奇县| 无锡市| 凤冈县| 万宁市| 文成县| 思南县| 宁晋县| 邵阳县| 中方县| 宣汉县| 伊宁县| 肃宁县| 富顺县| 高邑县| 永康市| 厦门市| 京山县| 家居| 南和县| 手游| 磐安县| 鄂伦春自治旗| 高唐县| 华亭县| 永清县| 同心县| 金秀| 原阳县| 南江县|