【发布时间】:2015-03-17 02:49:59
【问题描述】:
Struts 2, 2.3.20 提到
对从表达式访问静态方法的支持将被禁用 很快,请考虑重构您的应用程序以避免进一步 问题!
我们在验证器中使用了 OGNL 静态调用:
@ExpressionValidator(
expression = "@foo.bar@isValidAmount(amount)",
key = "validate.amount.is.not.valid"),
我们也在标签中使用了它
<s:set var="test"
value="@foo.bar@sampleMethod(#attr.sampleObject.property1)" />
那么,重构以上两种用法的最佳方法是什么?!
【问题讨论】:
-
通过在行动中添加包装这样的方法?
-
这首先是错误的方法;如果这是应用程序范围的功能,您应该有自定义验证器,它们可能已经作为业务逻辑存在,只需要包装为验证器。
-
@DaveNewton,感谢您的评论。我们经常使用自定义验证器,它们可以救命 :) 但我们不能在表达式验证器中使用它们。您能否查看我的问题并发表评论:stackoverflow.com/questions/28038827/…
标签: struts2 static-methods ognl