如果我有類似下面的AA請求映射:是否有可能有空的RequestParam值使用defaultValue?
@RequestMapping(value = "/test", method = RequestMethod.POST)
@ResponseBody
public void test(@RequestParam(value = "i", defaultValue = "10") int i) {
}
然後調用這個請求用:
http://example.com/test?i=
我得到錯誤信息
未能轉換的值鍵入'java.lang.String'鍵入'int';嵌套異常是java.lang.NumberFormatException:對於輸入字符串:「」」
我可以,或通過接受字符串值,並且僅通過解析從任一發送空參數停止JavaScript客戶端解決這個如果它們沒有發現爲空。
UPDATE:Spring的後續版本現在實現了最初期望的行爲。
我剛剛在春季4.3.5測試過,發現現在行爲會將空值變成默認值而不會升高NumberFormatException
,因此;我的原始映射現在工作正常。
我不確定這個行爲改變的春天是哪個版本。
當然,參數是一個Integer類型來引發異常? – laher
即時通訊不是spring專家,但是當你沒有設置它時,默認值是否被使用?即如果您的請求將是http://example.com/test?當你使用http://example.com/test?i=然後我出席並設置爲「」,所以默認值不使用 – user902383
謝謝amir75,意外提供'字符串'類型。 user902383,這是正確的,但對於整數值,我寧願空/空值將使用defaultValue來代替。 –