錯誤400-The request sent by the client was syntactically incorrect

The request sent by the client was syntactically incorrect 說的意思是:由客戶端發送的請求是語法上是不正確的。

上網找了很多資料,大部分都是說前端jsp頁面的控件名稱(name)和controller中接收的參數名稱不一致,但是經過仔細對比,並不存在這個問題,怎麼回事呢???

還有資料是說,springmvc造成400錯誤的原因還可能是:

1、提交表單數據類型與model不匹配
2、方法參數順序不正確

詳見http://cuisuqiang.iteye.com/blog/2054234


另外還有一種可能:

form表單中有日期,Spring不知道該如何轉換,如要在實體類的日期屬性上加@DateTimeFormat(pattern="yyyy-MM-dd")註解


還有一種可能是:如果form表單有一組checkbox,而提交時一個複選框都沒有選中,也會出現400錯誤

詳見http://www.cnblogs.com/xiandedanteng/p/4189489.html


可是都解決不了我的問題 T_T

經過反覆提交該頁面測試,發現問題,就是隻有兩個文本框不輸入數據就提交,纔會出現400錯誤!!!

又經過一系列的百度,發現問題所在:

又一種可能:

因爲我是將多個參數作爲一個實體傳至controller,發現某個文本框爲空時,提交就會報錯,於是去實體中查看該文本框對應的參數屬性,發現與其他參數不同,定義爲int類型,於是就懂了。

其實 這是Spring MVC 的數據綁定問題:

如果form表單提交的數據對應實體的字段類型爲long,int,double時,而提交時又爲空時,就報400錯誤


解決方案:

1、限制用戶在輸入這些字段時,必須輸入數據,但是在實際使用場景中並不友好

2、將實體的字段類型改爲Long,Integer,Double等



發佈了30 篇原創文章 · 獲贊 10 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章