我可以在xxxx-validation.xml中为List配置validation吗?

现在在我的保存操作中,我定义了一个名为预订的模型,如下所示:

Class BookingAction { private Booking booking; ... } Class Booking { private String bookingNo; private String status; ... private Listparts = new ArrayList(); ... } Class Part { private String partNo; ... } 

我还为该操作定义了一个validationxml文件,例如

    true ${getText("MandatoryFieldEmpty",{"%{getText(\"BookingMain.status\")}"})}     true ${getText("MandatoryFieldEmpty",{"%{getText(\"BookingMain.bookedBy\")}"})}   .... 

我也可以为Part定义这种配置吗?

零件在列表中,列表是Booking的属性,是否有人可以告诉我是否可以在BookingAction-validation.xml中进行Part的validation?

您可以使用访客validation器 ;

您应该在BookingAction-validation.xml添加与parts对象相关的片段以激活访问者validation;

然后,您需要Part Object的包(而不是Action对象的包) 创建Part-validation.xml ,并为其指定单个Part元素的规则。

Struts2 Validation Interceptor将使用第二个文件来validationList的每个元素。

作为一个很好的副作用,如果你在另一个Action包含一个List对象,你对Part对象的validation就已经存在了,不需要在另一个文件中重写它(你只需要在你的文件中声明validation器片段) Action-validation.xml文件)。


编辑

您可以指定不同的上下文,以便通过使用更具体的Bean-context-validation.xml文件来触发对同一bean的进一步补充validation,仅在某些特定情况下。

阅读此详细示例 ,尤其是Visitor Validation Example (以及Visitor Validation with the Expression Validator的以下Visitor Validation with the Expression Validator )部分。