1

我正在尝试访问 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"/>

4

0 回答 0