【发布时间】:2012-01-31 20:32:46
【问题描述】:
我在我的 JSF 2.0 Web 应用程序中使用 JSR 303 Bean 验证,它与注释一起工作得很好。现在我想忽略注释并使用 validation.xml 文件配置验证规则,所以这就是我所做的(我正在使用 eclipse 动态 Web 项目):
-
在 WebContent/META-INF/validation.xml
下添加了 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" > <constraint-mapping>META-INF/validation/constraint-mapping.xml</constraint-mapping> </validation-config> -
然后在WebContent/META-INF/validation/constraint-mapping.xml
下创建文件constraint-mapping.xml<constraint-mappings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jboss.org/xml/ns/javax/validation/mapping validation-mapping-1.0.xsd" xmlns="http://jboss.org/xml/ns/javax/validation/mapping"> <bean class="my.full.path.ValidationMB" ignore-annotations="true"> </bean> </constraint-mappings>
有了这些配置,我想我的 bean 类 ValidationMB 中的注释应该被忽略,但这没有发生!,这让我假设验证.xml 文件没有被加载.
有什么想法吗?谢谢。
环境:
- Apache Tomcat 7.0.23
- javax.faces-2.1.4.jar
- hibernate-validator-4.2.0.Final.jar
- hibernate-validator-annotation-processor-4.2.0.Final.jar
- 验证-api-1.0.0.GA.jar
- slf4j-api-1.6.1.jar
来自规范:第 4.4.6 节。 XML 配置:META-INF/validation.xml
除非通过调用显式忽略 Configuration.ignoreXMLConfiguration(),一个Configuration接受 记下 META-INF/validation.xml 中可用的配置。这 配置文件是可选的,但可以由应用程序使用 改进一些 Bean Validation 行为。如果不止一个 在类路径中找到 META-INF/validation.xml 文件,一个 引发了 ValidationException。
【问题讨论】:
-
我尝试将validation.xml 放在任何地方,但它仍然对我不起作用。除了这里写的,你还发现了什么?
标签: jsf-2 bean-validation