我编写自定义消息插值。我希望JPA将使用我的自定义消息插值。这里http://docs.jboss.org/hibernate/validator/4.2/reference/en-US/html/validator-bootstrapping.html#section-message-interpolator我发现了以下描述:
Configuration<?> configuration = Validation.byDefaultProvider().configure();
ValidatorFactory factory = configuration
.messageInterpolator(new ValueFormatterMessageInterpolator(configuration.getDefaultMessageInterpolator()))
.buildValidatorFactory();
Validator validator = factory.getValidator();
但我应该在哪里编写这样的代码?在init-servlet的web.xml中?我可以在persistance.xml中提供这样的代码吗?
P.S。我复制并粘贴代码。在我的案例行
ValueFormatterMessageInterpolator(configuration.getDefaultMessageInterpolator()))
会改变这样的事情
CustomMessageInterpolator(configuration.getDefaultMessageInterpolator()))
另见How do I dynamically resolve message parameters with Hibernate Validator?
答案 0 :(得分:0)
JSR-303 bean验证框架提供了通过XML配置验证框架的可能性。
E.g。 META-INF/validation.xml
见
一章4.4.6。 XML配置:META-INF / validation.xml
详细规范:http://download.oracle.com/otndocs/jcp/bean_validation-1.0-fr-oth-JSpec/
4.4.6。 XML配置:META-INF / validation.xml
<?xml version="1.0" encoding="UTF-8"?>
<validation-config
xmlns="http://jboss.org/xml/ns/javax/validation/configuration"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jboss.org/xml/ns/javax/validation/configuration validation-configuration-1.0.xsd">
<default-provider>com.acme.ACMEProvider</default-provider>
<message-interpolator>com.acme.ACMEAwareMessageInterpolator</message-interpolator>
<constraint-mapping>META-INF/validation/order-constraints.xml</constraint-mapping>
<constraint-mapping>META-INF/validation/catalog-constraints.xml</constraint-mapping>
<constraint-mapping>META-INF/validation/customer-constraints.xml</constraint-mapping>
<property name="com.acme.validation.logging">WARN</property>
<property name="com.acme.validation.safetyChecking">failOnError</property>
</validation-config>
使用持久性jar(META-INF / validation.xml)打包xml文件,它应该可以工作。
根据您的部署包装(例如EAR),可能需要将其放在EAR的lib文件夹中的共享库中。
hibernate文档说:
为Hibernate Validator启用XML配置的关键是 文件validation.xml。如果此文件存在于类路径中 创建ValidationFactory时将应用配置。 例4.1,“validation-configuration-1.0.xsd”显示了一个模型视图 xsd valiation.xml必须遵守。
http://docs.jboss.org/hibernate/validator/4.0.1/reference/en/html_single/#d0e1867