问题 Struts2从JSP访问枚举


我有以下课程

package com.test;

public class SomeClass {
   public enum COLOR {RED,BLUE}
}

我想访问的值 COLOR 枚举在我的JSP中。我尝试了以下代码,但它不起作用。

<s:property value="@com.test.SomeClass.COLOR@RED"/>
<s:property value="@com.test.SomeClass@COLOR.RED"/>

以前有人问过这个问题吗? [我已经在struts.xml中启用了静态方法访问]


9464
2018-04-17 15:13


起源

你可以这样做,但你需要启用 struts.ognl.allowStaticMethodAccess=true - Umesh Awasthi
看一下 stackoverflow.com/questions/6708594/struts-2-iterate-enum - Umesh Awasthi
这个问题和那个问题应该合并。这个问题的标题更清晰,但实际上它们需要相同的解决方案。 - Quaternion
@UmeshAwasthi我已经启用了。但似乎无法访问枚举 - Dev Blanked
@DevBlanked:你看过我在这里发布的链接了吗? - Umesh Awasthi


答案:


对于 enum-s不需要启用 static method access

可以使用Enum-s访问 @ 这样的标志:

<s:property value="@package.ENUM@enumvalue"/>

在你的情况下,因为你宣布 enum 内部使用 $ 签署参考你的 enum

<s:property value="@com.test.SomeClass$COLOR@RED"/>

15
2018-04-17 22:01



很好,整洁,+ 1 - Andrea Ligios
我希望我几周前能够遇到这个答案。该 $ 是我自从失踪的 enums在其他类中声明。 - Matt