我已经将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;
}
也请尝试调查兼容性test results。在2.0.4和2.0.6之间(一些已删除的方法),API中似乎发生了许多危险的更改。开发人员不遵循版本约定,我认为行为可能会定期更改。您甚至不能在不中断的情况下更新次要版本。