Struts 2迭代枚举
在Struts 2中是否可以使用标记
来迭代枚举? 现在我正在使用String列表,但是可以直接使用枚举吗?
提前致谢。
是。 它有点难看,答案是启用静态方法访问,使用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"%> Enum Test
//NOTE THE USE OF THE $ character to access the inner class on the following two lines. length:
输出 :
枚举测试
长度:3
一
二
三
注意 :确保已启用静态方法访问。 执行此操作的简单方法是在struts.xml中的
标记之后添加以下内容。
有点。 您不能直接迭代枚举,因为它不是值的集合(枚举引用只表示枚举常量之一)。 但是,您可以迭代枚举的values()
方法,这是一个数组,或者您可以在操作中创建一个EnumSet
并迭代它。
示例枚举
package example; public enum SomeEnum { ONE, TWO, THREE; /* I don't recall if/how you can refer to non-getters in OGNL. */ public String getName() { return name(); } }
示例JSP