2
我創建了一個驗證器來驗證任何類的日期字段。我在我的控制器中自動裝配它的實例,並在我的控制器的方法中調用它的validate()方法。一切工作正常。自定義驗證器停止彈簧內部驗證
@RequestMapping(value = "/{pan}",method=RequestMethod.POST)
public ModelAndView submitIfPANpresents(@ModelAttribute("command") @Valid PortfolioBean portfolio,bindingResult result){
dateValidator.validate(portfolio, result);
if(result.hasErrors()){
System.out.println(result.getErrorCount());
return new ModelAndView("portfolioview");
}
:
}
現在我在我的控制器中創建了一個方法來綁定自定義驗證器和WebDataBinder。我希望我沒有明確地調用validate()。
@InitBinder
protected void initBinder(WebDataBinder binder) {
binder.setValidator(dateValidator);
}
仍然一切工作正常。
現在我評論說要從控制器的方法中調用validate()自定義驗證器並測試代碼。我只能看到自定義驗證器設置的錯誤。 Spring的內部驗證停止工作。
我在做什麼或錯過什麼錯?我的需要是,不要顯式調用validate(),並將xml中的驗證器作爲額外的驗證器進行綁定。
某處我讀過「建立在註釋中的JSR 303不做任何事情當你注入了自己的驗證器」:(任何解決方案? –
我可以使用aspectJ或其他方式嗎?我希望它自動運行一次只有配置。 –