我正在使用Spring 3 Portlet MVC。 MVC中的驗證/綁定應該是一樣的。以任何方式獲取BindingResult for @RequestParam?
我只有一個int
表單字段。當我在做
void doSmth(MyForm form, BindingResult bindingResult) throws ... {
int bindErrors = bindingResult.getErrorCount())
...
,並提交不能被解析爲int
這個方法會被執行並且bindErrors
是1,這個方法接收是0,這是偉大的形式字段值的字段值。
但是創建一個只包含單個字段的表單並不好。
我改變了代碼:
void doSmth(@RequestParam int userId, BindingResult bindingResult) ... {
int bindErrors = bindingResult.getErrorCount())
...
並在瀏覽器中獲取的Portlet不可用消息,此異常:
org.springframework.web.portlet.FrameworkPortlet的processRequest能 未完成請求 org.springframework.beans.TypeMismatchException:未能將 類型的值'java.lang.String'轉換爲所需的類型'int';嵌套0例外是java.lang.NumberFormatException:對於輸入字符串:「Q」
問題:是否有任何方式繼續進行方法執行,並在其中處理綁定錯誤即使@RequestParam
類型轉換失敗?我試圖讓@RequestParam
不需要,並提供默認值 - 沒有幫助。
好,如果它不支持開箱即用的話,我想我可以和一個價值bean一起生活,謝謝 –