У меня есть веб-приложение JSF-2.2 на сервер приложений Шипин в WildFly 8,1 Hibernate-валидатор 5.1Hibernate валидатор программные ограничения декларации и JSF
Я хочу установить некоторые constrainst programmaticaly с помощью текучего API, потому что зависит от случай, например, минимальное и максимальное из @Size ограничения могут изменяться или поле может быть @NotNull или нет ...
поэтому я стараюсь programmaticaly настроить ограничения, такие, как описывают здесь: http://docs.jboss.org/hibernate/validator/5.0/reference/en-US/html_single/#section-programmatic-api
я Somthing например, попробовать (в EJB @Singleton @Startup):
HibernateValidatorConfiguration configuration = Validation
.byProvider(HibernateValidator.class)
.configure();
ConstraintMapping constraintMapping = configuration.createConstraintMapping();
constraintMapping
.type(Car.class)
.property("manufacturer", FIELD)
.constraint(new NotNullDef())
.property("licensePlate", FIELD)
.ignoreAnnotations()
.constraint(new NotNullDef())
.constraint(new SizeDef().min(2).max(14));
Validator validator = configuration.addMapping(constraintMapping)
.buildValidatorFactory()
.getValidator();
Но тогда JSF не использует это новое сопоставление ограничений.
Я могу представить формы без проблем, даже если я нарушу ограничение programmaticaly набора
Я не знаю, как настроить валидатор или ValidatorFactory JSF использует или как обеспечить, чтобы JSF в другом валидатор или ValidatorFactory .. .
или может быть это больше о настройке сервера WildFly, что-то делать в конфигурационном файле или JNDI, я понятия не имею ...
EDIT
Я пытаюсь связать новый валидатор и валидатор завод в JNDI Но я не могу, потому что «контекст именования только для чтения»
Hashtable jndiProperties = new Hashtable();
jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
Context context = new InitialContext(jndiProperties);
context.bind("java:comp/Validator", factory.getValidator());
context.bind("java:comp/ValidatorFactory", factory);
Спасибо Hardy
Как вы предложили мне создать Улучшение валидатора Hibenate https://hibernate.atlassian.net/browse/HV-955