我可以使用EL从JSP访问枚举类的值吗?

我有一个枚举类USState 。 我想在JSP中遍历状态。

没有先将这样的列表设置为属性,是否可以访问USState列表? 看起来像enum一样静态的东西应该总是可用的,但我无法弄清楚如何去做。

这就是我要找的东西:(工作除外)

  ${state}  

您还可以考虑将其包装在Javabean中,如下所示:

 package com.stackoverflow.q2240722; public class StateBean { public State[] getValues() { return State.values(); } } 

这样它可以通过

 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>     SO question 2240722      

您必须在支持代码的某处创建一个列表,并将其作为模型参数传递。 最好在ServletContextListener (由BalusC建议)并将其放在ServletContext (即应用程序范围)中:

 servletContext.setAttribute("statesList", YourEnum.values()); 

请注意,您也可以使用scriptlet(在这种简单的情况下,我认为它不太有害):

  

USState应该是完全限定的或使用<%@ page import = "..." %>