我寫春天有個web應用程序,我有與形式的驗證問題。這是我第一次使用,所以我還是要了解它...Spring表單驗證問題
基本上我有那就是表單處理方法的控制器:
@RequestMapping(params = "action=gestprodotti")
public ModelAndView doGestProdotti(
@RequestParam(value = "page", required = false, defaultValue = "0") int page,
@RequestParam(value = "activity", required = false) String activity,
@ModelAttribute Prodotto prod, BindingResult bindresult,
HttpSession session) throws Exception {
控制器註釋,並且不擴展任何東西稍後在該方法中,接收綁定到表格對象後,我做的:
Validator valid = activityHandler.getValidator();
valid.validate(backingObject, bindresult);
if (bindresult.hasErrors()){
return handleRequest(action, ACTIVITY_NEW_ITEM, jspComponent,
page, itemId, backingObject, bindresult, appstatus);
}
這意味着,我稱手動驗證和給回相同的形式頁(一個ModelAndView結果)。
的驗證碼:
public static final class ProdottoValidator implements Validator{
@Override
public boolean supports(Class<?> other) {
return Prodotto.class.isAssignableFrom(other);
}
@Override
public void validate(Object obj, Errors errors) {
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "codice", "Il codice è richiesto");
}
}
及相關JSP代碼:
<td colspan="2" align="left">Codice<form:input id="code"
path="codice" /><form:errors path="codice" /></td>
工作正常結合,但我沒有得到任何錯誤。我沒有創建任何messages.properties文件,但我認爲我應該看到一些東西。錯誤被檢測到,因爲bindresult.hasErrors()
給出了true,但是呈現的html沒有顯示任何代替form:errors的東西。我是否缺少配置之類的東西?是否因爲沒有messages.properties文件,它不起作用?
默認應該是「命令」的文檔說。像你說的那樣使用prodotto以綁定錯誤結束。你確定嗎? – gotch4 2011-02-04 11:09:09