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

时间:2011-01-12 15:34:31

标签: spring validation 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");
    }
}

我的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>

我缺少什么?

谢谢!

1 个答案:

答案 0 :(得分:12)

BindingResult.reject()将错误消息与整个表单相关联,<form:errors/>可以显示path。要将错误与特定表单字段相关联,请使用BindingResult.rejectValue()

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

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