0

我正在尝试为我当前的项目在 struts 2 中进行验证。我必须对我的验证消息进行分组。例如:如果有 3 个字段为空,还有 3 个其他字段的格式不正确,我需要得到类似“以下字段为必填项:field1,field2,field3 以下字段的格式无效的消息: 字段 4、字段 5、字段 6"

我尝试为 fieldError 提供一个参数。例如:
<s:fielderror>
<s:param value="%{requiredstring}"/>
</s:fielderror>

据我说,这就像指定“显示其验证器类型为必需字符串的所有错误”。如果我错了,请纠正我。但这每次都会为每个空的字段显示消息“需要以下字段”。我希望它只显示一次。

有没有办法在 stuts2 中使用通过 xml 的验证来干净地做到这一点?我不想在 validate 方法中进行所有验证。

谢谢

4

1 回答 1

0

你错了; 我不知道你为什么认为那会起作用,文档并不暗示这是可能的。

字段错误只是特定字段的错误。如果您需要按任意标准(例如验证类型)对错误进行分组,则需要自己实现。

有很多方法可以做到这一点,包括编写自定义验证拦截器、提供以不同方式对错误进行分组的验证器,或者只是在操作或验证方法中收集适当的消息。

可以根据消息内容收集错误,但 IMO 会很脆弱。如果这是一个跨应用程序问题,您最好以不同的方式进行。

综上所述,通过以不一定反映表单的顺序呈现错误消息,您将更多的认知开销推给用户:我不想看到一组消息告诉我哪些字段共享相同的错误,我想要要查看每个字段有什么问题,请以相同的顺序在表单上显示字段,最好靠近表单字段本身。

于 2011-10-15T14:39:19.910 回答