使用XML进行JavaBean验证:字段上的多个相同约束
在Java8中引入@Repeatable
之前,字段上不允许有多个相同的注释。对于XMLBean验证,解决方法是在约束注释内创建嵌套的@List注释。例如,如嵌套在javax.validation.constraints.NotNull
内部的this post中所述,您有:
@interface List {
NotNull[] value();
}
当直接在java代码中使用注释时(通常是这样),可以定义多个@NotNull
注释:
@NotNull.List({@NotNull(groups=Foo.class, message="myObject may not be null for Foo"),
@NotNull(groups=Bar.class, message="myObject may not be null for Bar"})
private Object myObject;
但是,我尝试在xml文件中而不是在代码中配置验证(这是不太常见的)
我的xml bean验证如下所示:
<field name="myObject">
<constraint annotation="javax.validation.constraints.NotNull">
<message>myObject may not be null for Foo</message>
<groups>
<value>my.package.Foo</value>
</groups>
</constraint>
<constraint annotation="javax.validation.constraints.NotNull">
<message>myObject may not be null for Bar</message>
<groups>
<value>my.package.Bar</value>
</groups>
</constraint>
</field>
这对我不起作用。。。当我这样做的时候,验证根本不会发生
我已经在xsd中寻找了线索:http://jboss.org/xml/ns/javax/validation/mapping/validation-mapping-1.0.xsd,但我没有找到合并@NotNull.List
的方法
在xml中使用多个相同约束的正确方法是什么
共 (0) 个答案