您无需在中注册验证器
WebDataBinder。相反,您可以
Validator为每个需求创建两个(或任意数量)不同的类。例如
public class OfficerRegistrationValidation implements Validator {...}public class OfficerUpdatevalidation implements Validator {...}使用
@Component或
<bean>声明为每个容器创建bean 。将它们注入您的
@Controller班级
@Controllerpublic class OfficerController { @Inject private OfficerRegistrationValidation officerRegistrationValidation; @Inject private OfficerUpdatevalidation officerUpdatevalidation;然后在每种方法中使用所需的特定方法
@RequestMapping(method = RequestMethod.POST) public String registerOfficer(@Valid @ModelAttribute Officer officer, BindingResult errors ) { officerRegistrationValidation.validate(officer, errors); if (errors.hasErrors()) { ...// do something } ...// return something}请勿在中注册任何一个
WebDataBinder。
@Valid将执行默认验证,例如
@NotEmpty或
@Pattern注释。您的
Validator实例将针对特定用例执行自定义验证。



