java显示组织上设置的错误。springframework。验证。jsp中的错误对象
我正在为表单输入使用自定义验证器。如果必填字段项为空,我使用org.springframework.validation.ValidationUtils
单例拒绝它们:
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "username", null, "Username is mandatory");
打印这些错误消息在我的jsp中有效:
<form:errors path="username"/>
但是,我想做一些更“复杂”的验证,例如注册电子邮件输入或匹配两个密码条目:
errors.reject("verifypw", "Passwords don't match");
当输入的两个密码不匹配时,我想向Errors对象添加一个错误。 这是预期的工作,我可以检查控制器上的错误
public String submitRegisgrationForm(@ModelAttribute("user") PlatformUser user, BindingResult result) {
userService.validateUserInput(user, result);
if (!result.hasErrors()) {
userService.createNewUser(user);
return "user/success";
} else {
return "user/register";
}
}
唉,通过errors.reject()
引发的错误不能像通过rejectIfEmptyOrWhitespace()
引发的错误那样被访问
<form:errors path="verifypw"/>
<label for="verifypw">Verify password: </label>
<form:password path="verifypw" id="verifypw"/>
这不会向jsp打印任何错误消息
# 1 楼答案
当你使用时
您拒绝整个表单,错误代码为
verifypw
,消息为Passwords don't match
;您没有拒绝单个字段。因此,错误不会出现在JSP中但如果你有
你会看到的。要拒绝单个字段,请使用