2011-01-12 54 views
3

我想驗證我的投入,但我不能使它的工作:沒有出現在頁面上。 我的項目是在java 5中,所以沒有JSR303(@Valid)。我唯一的解決方案,如果我沒有錯,是使用BindingResult。春季3 MVC:問題與形式:錯誤和bindingresult

我的控制器:

@Controller 
public class MyController { 

    @RequestMapping(method = RequestMethod.POST, value = "myPage.html") 
    public void myHandler(MyForm myForm, BindingResult result, Model model) { 
     result.reject("field1", "error message 1"); 
    } 
} 

我的jsp:

<form:form commandName="myForm" method="post"> 
    <label>Field 1 : </label> 
    <form:input path="field1" /> 
    <form:errors path="field1" /> 

    <input type="submit" value="Post" /> 
</form:form> 

我在想什麼?

謝謝!

回答

12

BindingResult.reject()將錯誤消息與表單作爲一個整體相關聯,可以通過<form:errors/>顯示,而不顯示path。爲了誤差具體表單字段關聯,請使用BindingResult.rejectValue()

result.rejectValue("field1", "messageCode", "Default error message"); 

還有一些與JSR-303的Java 5.沒有任何問題,您需要在classpath JSR-303供應商和API庫,以及Java 6中

+0

rejectValue它!謝謝,你救了我一天:)) – 2011-01-12 15:55:50