Bean 验证 XML 整个 bean
Bean Validation XML entire bean
我需要使用bean验证XML。
我们可以通过在 class 声明之前放置注释来验证整个 class。
@AtLeastOneNotNull
public class SampleBean {
// ...
}
然后使用反射遍历字段。
如何使用 XML bean 验证实现相同的目的?
<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">
<default-package>my.package</default-package>
<bean class="SampleBean">
<!-- ? -->
</bean>
</constraint-mappings>
我能在<bean>
之后声明的是<field>
。
我的目标是使用 XML bean 验证来验证多个字段依赖关系。
例如:
- 必须至少填写一个字段
- 如果
field1
是 null
那么 field2
不是
请检查 documentation for Bean Validation 2.0 (If you still use the older version - here's the same link 到 1.0 版本)示例 9.2 显示了您需要的内容:
<?xml version="1.0" encoding="UTF-8"?>
<constraint-mappings
xmlns="http://xmlns.jcp.org/xml/ns/validation/mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/validation/mapping
http://xmlns.jcp.org/xml/ns/validation/mapping/validation-mapping-2.0.xsd"
version="2.0">
<default-package>com.acme.app.domain</default-package>
<bean class="Customer" ignore-annotations="false">
<class ignore-annotations="true">
[...]
</class>
</bean>
</constraint-mappings>
因此,要回答您的问题,您应该能够输入:
<bean class="SampleBean" ignore-annotations="false">
<class ignore-annotations="true">
[...]
</class>
</bean>
并定义您的约束条件。此外,如果您使用的是 Hibernate Validator,您可能需要查看 ScripAssert 约束 - 它允许您编写一个简单的脚本检查,并且您不需要编写自己的约束来检查是否至少有一个文件不为空。希望这有帮助。
我需要使用bean验证XML。
我们可以通过在 class 声明之前放置注释来验证整个 class。
@AtLeastOneNotNull
public class SampleBean {
// ...
}
然后使用反射遍历字段。
如何使用 XML bean 验证实现相同的目的?
<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">
<default-package>my.package</default-package>
<bean class="SampleBean">
<!-- ? -->
</bean>
</constraint-mappings>
我能在<bean>
之后声明的是<field>
。
我的目标是使用 XML bean 验证来验证多个字段依赖关系。
例如:
- 必须至少填写一个字段
- 如果
field1
是null
那么field2
不是
请检查 documentation for Bean Validation 2.0 (If you still use the older version - here's the same link 到 1.0 版本)示例 9.2 显示了您需要的内容:
<?xml version="1.0" encoding="UTF-8"?>
<constraint-mappings
xmlns="http://xmlns.jcp.org/xml/ns/validation/mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/validation/mapping
http://xmlns.jcp.org/xml/ns/validation/mapping/validation-mapping-2.0.xsd"
version="2.0">
<default-package>com.acme.app.domain</default-package>
<bean class="Customer" ignore-annotations="false">
<class ignore-annotations="true">
[...]
</class>
</bean>
</constraint-mappings>
因此,要回答您的问题,您应该能够输入:
<bean class="SampleBean" ignore-annotations="false">
<class ignore-annotations="true">
[...]
</class>
</bean>
并定义您的约束条件。此外,如果您使用的是 Hibernate Validator,您可能需要查看 ScripAssert 约束 - 它允许您编写一个简单的脚本检查,并且您不需要编写自己的约束来检查是否至少有一个文件不为空。希望这有帮助。