繁体   English   中英

Bean验证XML整个bean

[英]Bean Validation XML entire bean

需要使用XML进行bean验证。

我们可以通过在类声明之前放置注释来验证整个类。

@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验证来验证多个字段依赖性。
例如 :

  • 至少必须填写一个字段
  • 如果field1nullfield2不是

请检查Bean Validation 2.0的文档 (如果您仍然使用旧版本-这是指向 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约束-它可以让您编写简单的脚本检查,而无需编写自己的约束来检查至少一个字段是否不为null。 希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM