是。有点丑陋,答案是启用静态方法访问,对OGNL表达式使用内部类语法(使用’$’),两者结合在一起将使您可以使用Steven提到的values方法。这是一个例子:
动作示例 :
package com.action.test;import com.opensymphony.xwork2.ActionSupport;public class EnumTest extends ActionSupport{ enum Numbers{ONE, TWO, THREE};}示例JSP :
<%@taglib prefix="s" uri="/struts-tags"%><%@page contentType="text/html" pageEncoding="UTF-8"%><!DOCTYPE html><html> <body> <h1>Enum Test</h1> //NOTE THE USE OF THE $ character to access the inner class on the following two lines. length: <s:property value="@com.action.test.EnumTest$Numbers@values().length"/><br/> <s:iterator value="@com.action.test.EnumTest$Numbers@values()"> <s:property/><br/> </s:iterator> </body></html>
输出 :
枚举测试
长度:3
ONE
TWO
THREE
注意 :确保已启用静态方法访问。一种简单的方法是
<struts>在struts.xml中的标记之后添加以下内容。
<constant name="struts.ognl.allowStaticMethodAccess" value="true"/>



