Spring 3 MVC:表单问题:错误和bindingresult

Max*_*AMM 3 validation spring spring-mvc

我想验证我的输入,但我无法使其工作:页面上没有任何内容.我的项目是在java 5中,所以没有JSR303(@Valid).我唯一的解决方案是,如果我没弄错的话,就是使用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");
    }
}
Run Code Online (Sandbox Code Playgroud)

我的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>
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

谢谢 !

axt*_*avt 12

BindingResult.reject()与相关联的形式作为一个整体的错误信息,它可以通过显示<form:errors/>没有path.要将错误与特定表单字段关联,请使用BindingResult.rejectValue():

 result.rejectValue("field1", "messageCode", "Default error message"); 
Run Code Online (Sandbox Code Playgroud)

使用Java 5的JSR-303也没有问题.您需要在类路径以及Java 6中使用JSR-303提供程序和API库.