У меня есть собственный валидатор и зарегистрировать его в моем контроллереПонимания «globalValidator» в Spring MVC
@Controller
public class MyController {
@InitBinder
protected void initBinder(WebDataBinder binder) {
binder.setValidator(new FooValidator());
}
@RequestMapping("/foo", method=RequestMethod.POST)
public void processFoo(@Valid Foo foo) { ... }
}
, но я хочу, чтобы зарегистрироваться в других контроллерах также, так, чтобы иметь возможность просто написать @Valid и Foo объект, подлежащий проверке. Из того, что я вижу, я понимаю, что я могу использовать @ControllerAdviced класс, чтобы зарегистрировать валидатор на каждом контроллере или использовать
<mvc:annotation-driven validator="globalValidator"/>
Но как зарегистрировать мой валидатор, как Spring понять, какие средства проверки я хочу сделать одну глобальную ? Сканирование для каждой реализации Validator класс? Могу ли я это сделать с помощью xml-конфигурации? Как использовать этот подход?
Я не понимаю, описание весной в:
В качестве альтернативы можно назвать setValidator (Validator) на глобальном WebBindingInitializer. Этот подход позволяет настроить экземпляр Validator для всех аннотированных контроллеров. Это может быть достигнуто путем с использованием пространства имен SpringMVC:
Xmlns = "http://www.springframework.org/schema/beans" Xmlns: = MVC "http://www.springframework.org/schema/" MVC XMLNS: XSI = "http://www.w3.org/2001/XMLSchema-instance" XSI: SchemaLocation =" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xss http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd «>
<mvc:annotation-driven validator="globalValidator"/>
валидатор с именем 'globalValidator' ... Или один с именем' fooBar', если вы пишете ' ' –
Так что "globalValidator" это просто имя ранее созданного валидатора? Так что, если Iwan поместить двух из них в глобальную? – Xelian
Вы не можете .. У вас может быть только один глобальный валидатор ... –