Java 我可以在xxxx-validation.xml中为列表配置验证吗?
现在,在我的保存操作中,我定义了一个名为booking的模型,如下所示:Java 我可以在xxxx-validation.xml中为列表配置验证吗?,java,struts2,Java,Struts2,现在,在我的保存操作中,我定义了一个名为booking的模型,如下所示: Class BookingAction { private Booking booking; ... } Class Booking { private String bookingNo; private String status; ... private List<Part>parts = new ArrayList<Part>(); ...
Class BookingAction {
private Booking booking;
...
}
Class Booking {
private String bookingNo;
private String status;
...
private List<Part>parts = new ArrayList<Part>();
...
}
Class Part {
private String partNo;
...
}
类预订操作{
私人订票;
...
}
订票{
私人字符串预订编号;
私有字符串状态;
...
private Listparts=new ArrayList();
...
}
班级部分{
私有字符串partNo;
...
}
我还为该操作定义了一个验证xml文件,例如
<validators>
<field name="booking.status">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>${getText("MandatoryFieldEmpty",{"%{getText(\"BookingMain.status\")}"})}</message>
</field-validator>
</field>
<field name="booking.bookedBy">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>${getText("MandatoryFieldEmpty",{"%{getText(\"BookingMain.bookedBy\")}"})}</message>
</field-validator>
</field>
....
真的
${getText(“MandatoryFieldEmpty”,{“%{getText(\'BookingMain.status\”)}
真的
${getText(“MandatoryFieldEmpty”,{“%{getText(\'BookingMain.bookedBy\”)}
....
我也可以为零件定义这种配置吗
零件在列表中,列表是Booking的属性,有人能告诉我是否可以在BookingAction validation.xml中进行零件验证吗?您可以使用
您应该在BookingAction validation.xml
中添加与部分
对象相关的
片段,以激活访客验证
然后,您需要在零件
对象的包(而不是操作
对象的包)下创建一个零件验证.xml
,并在其中指定单个零件元素的规则
Struts2验证拦截器将负责使用第二个文件验证列表中的每个元素
作为一个很好的副作用,如果您在另一个操作
中包含一个列表
对象,您对部分
对象的验证将已经存在,而无需在另一个文件中重写它(您只需在Action-validation.xml文件中声明验证程序片段)
编辑
通过使用更具体的bean context validation.xml
文件,仅在某些特定情况下,您可以指定不同的上下文来触发同一bean的进一步补充验证
阅读,尤其是访客验证示例
(以及下面的使用表达式验证器进行访客验证
)部分。+1了解副作用。您还可以提到上下文
参数。感谢@AleksandrM的建议,添加了它