我想验证我的输入,但我无法使其工作:页面上没有任何内容。 我的项目是在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>
我缺少什么?
谢谢!
答案 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库。