gpt4 book ai didi

validation - 在 Struts 2 中链接访问者验证器

转载 作者:行者123 更新时间:2023-12-03 10:02:31 24 4
gpt4 key购买 nike

一个 Action 类有一个要验证的属性。该属性是一个类(MyClass1),其中一个属性也是一个类(MyClass2)。

每个要验证的类都将被多个操作使用,因此我为每个类定义了一个“MyClass*-validation.xml”。

我遇到的问题是尝试使用 MyClass1 中的访问者验证器来验证 MyClass2。

MyAction-validation.xml:

<validators>
<field name="class1">
<field-validator type="visitor">
<message></message>
</field-validator>
</field>
</validators>

MyClass1-validation.xml:

<validators>
<field name="class2">
<field-validator type="visitor">
<message></message>
</field-validator>
</field>
</validators>

MyClass2-validation.xml:

<validators>
<field name="myInt">
<field-validator type="conversion">
<message>myInt conversion</message>
</field-validator>
</field>
</validators>

如果我提交一个带有字段 class1.class2.myInt="a"的表单,fieldErrors() 不包含转换错误,这是我的预期。

是否可以无限期地链接访问者验证器,或者一个级别的访问者是否是最大值?如果可能的话,我做错了什么?


不理想的(在我看来)解决方案/变通方法:由于我无法弄清楚我做错了什么,我最终尝试不将验证从 MyClass1-validation.xml 链接到 MyClass2-validation.xml,而是更改了MyAction-validation.xml 的定义:

<validators>
<field name="class1.class2">
<field-validator type="visitor">
<message></message>
</field-validator>
</field>
<field name="class1">
<field-validator type="visitor">
<message></message>
</field-validator>
</field>
</validators>

此更改解决了问题(fieldErrors() 现在包含转换错误),但我非常希望能够像我最初的意图那样链接验证器。

最佳答案

是的,实际上可以无限期地链接 visitors 验证器。 conversion 验证器获取完整的字段名称并检查转换错误映射是否包含该名称。问题是在多个 chained visitor 验证器的情况下 conversion 验证器无法获取实际的完整字段名称(例如 class1.class2. myInt).

您可以在 MyClass2-validation.xml 文件(例如 int 验证器)。

关于validation - 在 Struts 2 中链接访问者验证器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23544452/

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