2011-01-12 70 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