gpt4 book ai didi

java - 我可以在 xxxx-validation.xml 中为列表配置验证吗?

转载 作者:行者123 更新时间:2023-11-30 11:33:28 27 4
gpt4 key购买 nike

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

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;
...
}

我还为该操作定义了一个验证 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>
....

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

Part 在列表中,List 是 Booking 的属性,有人能告诉我是否可以在 BookingAction-validation.xml 中进行 Part 的验证吗?

最佳答案

您可以使用 Visitor Validator ;

您应该添加 <validator type="visitor">parts 相关的片段在你的对象 BookingAction-validation.xml激活访问者验证;

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

Struts2 Validation Interceptor将使用第二个文件负责验证列表的每个元素。

作为一个很好的副作用,如果你包含一个 List<Part>另一个对象 Action ,您对 Part 的验证对象将已经存在,无需在另一个文件中重写它(您只需要在 Action-validation.xml 文件中声明验证程序片段)。


编辑

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

阅读this detailed example ,尤其是 Visitor Validation Example (以及以下 Visitor Validation with the Expression Validator )部分。

关于java - 我可以在 xxxx-validation.xml 中为列表配置验证吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16120718/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com