寫乙個web service, 總是400. 說是request有問題,server不識別。然而檢查了很多次都沒問題。最終問題指向spring對引數的解析和注入。
乙個controller中可以自定義引數,只要引數和request的引數匹配就會自動注入。針對自定義pojo,顯然是spring幫忙給new了乙個新的,然後把引數扔進去。
測試發現,不是setter方法的問題。
最後,發現自己在pojo中新增了個建構函式但卻麼有宣告無參建構函式,這樣導致spring無法呼叫無參建構函式,於是bad request就產生了。至於深層次的原因,需要深入resolve原始碼去檢視。
問題原因:
1. 沒有對原理深入理解,沒有對原始碼熟悉。
2. log顯示問題,由於使用cmd開啟的tomcat,錯誤輸出很不友好,幾乎不會去看。雖然很費解為什麼公司的架構師設計控制為cmd,但目前只能認真去看了。
Spring MVC 實現原理和注入引數
springmvc的實現原理 1.客戶端傳送請求,提交到dispatcherservlet控制器 4.控制層呼叫業務層處理請求並返回結果 5.dispatcherservlet控制器根據結果查詢視 析器將結果展現給頁面springmvc怎麼注入引數 1.將引數寫在方法形參中,適用於get方式的提交 ...
SpringMVC常用註解和可注入引數(基礎)
屬性 produces 返回資料的型別 即accept responsebody pathvariable login public string login pathvariable param string name,string pwd login smith?pwd abc pathvari...
springmvc 引數傳遞
1 頁面向controller傳值 a 普通引數 表單提交,post方法 public string login string username,string password 表單,或url username x 提交 username 成為url的一部分,沒有引數會報錯,要允許無引數時去掉 re...