不知道我做错了什么 - 但是在我提交没有任何值的人员表单后,我
无法在 html 输出中看到任何验证错误。
当我在控制器中添加断点时,我能够看到“错误”
所以它会出现 result.hasErrors() 尝试添加 * form:errors path="*" - 仍然没有
,但表单上仍然没有错误.
Get 方法:
Person 类是一个没有注解的 POJO。
@RequestMapping(value="/person/add" , method = RequestMethod.GET)
public ModelAndView personAdd() {
ModelAndView modelAndView = new ModelAndView("personAdd");
Person person = new Person();
person.setCreationDate(new Date());
modelAndView.addObject(person);
return modelAndView;
}
post方法保存新人
@RequestMapping(value="/person/add" , method = RequestMethod.POST)
public ModelAndView processSubmit(@ModelAttribute("person") Person person,BindingResult result) {
personValidator.validate(person, result);
if (result.hasErrors()) {
ModelAndView modelAndView = new ModelAndView("personAdd");
modelAndView.addObject(person);
return modelAndView;
} else {
ModelAndView modelAndView = new ModelAndView("refreshParent");
dao.persist(person);
return modelAndView;
}
}
personValidator:
@Override
public void validate(Object target, Errors errors) {
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "personName","required.personName", "Name is required.");
Person 表单(为简单起见,只有名称)
<form:form method="POST" modelAttribute="person" action="${pageContext.request.contextPath}/person/add">
<form:errors path="*" cssClass="errorblock" element="div"/>
<form:errors path="*" />
<div class="form-group">
<label class="control-label" for="inputError">Person Name:</label>
<form:input path="personName" class="form-control" placeholder="personName"/>
<form:errors path="personName" cssClass="error" />
</div>
<form:form>