我正在尝试访问 JSP 中的静态成员值,如下所示:
"@package.subPackage.ClassName@STATIC_MEMBER"
STATIC_MEMBER 被声明为public static final String
分配了一个值,并且类具有公共范围。我的 struts.properties(位于 webapps\appName\WEB-INF\classes 文件夹下)有struts.ognl.allowStaticMethodAccess=true
条目。但是,Struts 似乎忽略struts.ognl.allowStaticMethodAccess=true
了 struts.properties 中的条目。
我在另一个项目中遵循了上述相同的步骤,并且运行良好。
注意:
1. 我已经交叉检查了完整的包、类和 STATIC_MEMBER 名称的正确性。
2.页面上没有错误/异常。3. 同一个JSP 可以从Action 类( )
中访问成员值。
4. 我尝试从其他类访问静态成员,但不起作用。
5. 我曾尝试删除 struts.properties 文件,并在 struts.xml 文件中的标签后创建一个条目,为 :
。重新启动并重新尝试。但是,不起作用。
6. 从服务器中删除 Web 应用程序及其缓存(工作文件夹)后,我重新构建、重新部署并重新启动了服务器,但是没有工作。<s:property value="actionMember"/>
<struts>
<constant name="struts.struts.ognl.allowStaticMethodAccess" value="true" />
环境:Java 1.6、Struts 2.1、Tomcat 6.0 @ Windows XP 2002
请帮忙。
提前非常感谢!
--------------------代码更新---------------------------- ---
班级
package package1.subPackage1;
public class FooClassName {
public static final int INVALID_LOGIN = 0;
}
struts.properties
struts.ognl.allowStaticMethodAccess=true
JSP
<s:if test="errorType == @package1.subPackage1.FooClassName@INVALID_LOGIN">
some code here
</s:if>
Action 类:
1. private int errorType;
2. 有各自的 getter 和 settererrorType
甚至没有打印值,试过了:
<s:property value="@package1.subPackage1.FooClassName@INVALID_LOGIN"/>