我正在使用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方式指定长度约束?我找不到任何例子。
答案 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;