我已经将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中似乎发生了许多危险的更改。开发人员不遵循版本约定,我认为行为可能会定期更改。您甚至不能在不中断的情况下更新次要版本。

09-27 20:00