我想用Spring驗證器驗證我的表單,並使用@Validated
。Spring @Validated和@InitBinder
但是,我很困惑,爲什麼我需要在@InitBinder
中指定Validator。
這裏是從控制器我的相關代碼片段:
@InitBinder("organisationForm")
private void initBinder(WebDataBinder binder) {
binder.setValidator(new OrganisationFormValidator());
}
@RequestMapping(value = "/addOrganisation", method = RequestMethod.POST)
public String addOrganisationPost(@Validated @ModelAttribute("organisationForm") OrganisationForm organisationForm, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return "configuration/addOrganisation";
}
這工作得很好,但我需要爲每個我的要求的@InitBinder
。
春天有在註冊的所有轉換器像這樣的一種方式:
@Override
public void addFormatters(FormatterRegistry formatterRegistry) {
ConversionServiceFactory.registerConverters(getConverters(),
formatterRegistry);
}
有沒有春天有個「驗證服務」,看起來通過所有驗證,並選擇正確的,也許使用supports
方法由Spring Validator
接口強制執行:
public boolean supports(final Class<?> clazz) {
return OrganisationForm.class.isAssignableFrom(clazz);
}
只是似乎很奇怪,這並不在Spring存在。我誤解了一些東西嗎?
看起來很奇怪,你不使用驗證框架。 – zeroflagL
@zeroflagL我正在使用[Spring框架的驗證](http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/validation/Validator.html) – dkanejs
對不起,我的評論是措辭厲害。我的意思是像Bean驗證。這非常簡單。 – zeroflagL