XML中的Hibernate验证器约束

时间:2014-02-03 13:19:08

标签: java xml hibernate bean-validation spring-ws

我正在使用xml文件来指定对传入请求bean的约束。我在validation-constraints.xml文件中执行此操作,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<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>com.mathworks.internal.business.geoTypes
    </default-package>

    <bean class="GetStatesByCountryCodeRequest">
        <field name="countryCode">
            <constraint annotation="org.hibernate.validator.constraints.NotBlank" />

        </field>
    </bean>

</constraint-mappings>

我还需要countryCode只有2个字符。我查看了hibernate提供的长度验证器,但是它需要一个min和max值,我猜测在我的情况下应该是2和2.如何以XML方式指定长度约束?我找不到任何例子。

2 个答案:

答案 0 :(得分:1)

我最终做了以下事情:

<bean class="GetStatesByCountryCodeRequest">
        <field name="countryCode">
            <constraint annotation="org.hibernate.validator.constraints.NotBlank" />
            <constraint annotation="org.hibernate.validator.constraints.Length">
                <element name="min">2</element>
                <element name="max">2</element>
            </constraint>

        </field>
    </bean>

这似乎解决了现在的问题。

答案 1 :(得分:0)

为了解决您的问题,我认为模式约束会更好。

<constraint annotation="javax.validation.constraints.Pattern" >
    <element name="regexp">[a-zA-Z]{2}</element>
</constraint>

这将定义长度为2的字符串。

而不是违规消息&#34;尺寸必须介于2和2之间&#34;
你会&#34;必须匹配&#34; [a-zA-Z] {2}&#34;&#34;