我已经将 Xwork 从 2.0.4 升级到 2.0.6(struts 版本是 2.0.11.1)。字段验证工作正常,但错误的关键不是。例如,我有一个名为 profile.name.firstName 的必填字段。字段错误键现在以 profile.profile.name.firstName 的形式出现。当错误来自 Xwork 验证时,点符号中的第一个值总是重复。
关于可能导致这种情况的任何想法?
我已经将 Xwork 从 2.0.4 升级到 2.0.6(struts 版本是 2.0.11.1)。字段验证工作正常,但错误的关键不是。例如,我有一个名为 profile.name.firstName 的必填字段。字段错误键现在以 profile.profile.name.firstName 的形式出现。当错误来自 Xwork 验证时,点符号中的第一个值总是重复。
关于可能导致这种情况的任何想法?
类VisitorFieldValidator的getFullFieldName方法的主体发生了变化:
diff -rNau xwork-2.0.4-sources/ xwork-2.0.6-sources/
输出:
public String getFullFieldName(String fieldName) {
+ if (parent instanceof AppendingValidatorContext) {
+ return parent.getFullFieldName("") + field + "." + fieldName;
+ }
return field + "." + fieldName;
}
还要尝试调查兼容性测试结果。在 2.0.4 和 2.0.6 之间的 API 中似乎有很多危险的变化(几个删除的方法)。开发人员不遵循版本控制约定,我认为行为可能会定期更改。您甚至无法在没有损坏的情况下更新次要版本。