Spring MVC——The request sent by the client was syntactically incorrect ()的原因與解決辦法
阿新 • • 發佈:2018-11-20
這句話的意思是客戶端傳送的請求語法錯誤,從而導致springmvc無法實現資料繫結。
而這種錯誤呢,大部分是由於引數格式不正確。
下面舉一個例子來說明:
<form:form id="seller_changepassword_form" modelAttribute="accountmodel" action="http://localhost:8080/Takout/views/html_jsp/test" method="get"> <input id="seller_new_password" style="margin-top:10px;margin-left:10px;height:30px;"type="text"autocomplete="off"value=""></input> <button class="info_submit" id="seller_password_submit" type="submit">提交</button> </form:form>
controller如下:
@RequestMapping(value ="views/html_jsp/test",produces = "application/json;charset=utf-8",method ={RequestMethod.GET}) public ModelAndView change_sellerpassword(HttpServletRequest request, @RequestParam("seller_new_password") int seller_new_password) { ModelAndView mv = new ModelAndView(); mv.addObject("seller_new_password",seller_new_password); }
從上面的form表單我們可以看到,input框輸入新的密碼,如果輸入的是數字,那麼將沒有問題。
但是如果密碼帶有字元,如“123456789,.”這樣的,那麼因為controller中接收的引數宣告的是int型別的
如下圖
這樣因為型別不匹配,提交之後就會出錯。
因此這裡必須注意一下,提交的資料與入參宣告需要是同一個型別的,否則就報錯。
另外,還有一點需要注意
上面的這個引數的名稱必須和jsp頁面提交的引數名字一樣,否則將匹配不到。