Действительно ли я могу получить доступ к значениям класса Enum от JSP, использующего EL?

У меня есть класс Enum USState. Я хотел бы выполнить итерации через состояния в JSP.

Действительно ли возможно получить доступ к списку USStates без первой установки такого списка как атрибут? Кажется, что что-то столь статическое, как перечисление должно всегда быть доступным, но я не могу выяснить, как сделать это.

Вот то, что я ищу: (кроме работы)

<c:forEach var="state" items="${USState.values}" >
    <option value="${state}">${state}</option>
</c:forEach>
8
задан BalusC 10 February 2010 в 23:00
поделиться

3 ответа

Вам нужно будет создать список где-нибудь в вашем вспомогательном коде и передайте его как параметр модели. Желательно в ServletContextListener (как рекомендовано BalusC) и поместить его в ServletContext (т.е. область приложения):

servletContext.setAttribute("statesList", YourEnum.values());
9
ответ дан 5 December 2019 в 06:37
поделиться

Обратите внимание, что вы также можете использовать скриптлет (я не думаю, что это слишком вредно в таком простом случае):

<c:forEach var="state" items="<%= USState.values() %>" >

(USState должен быть либо полностью квалифицирован, либо импортирован с помощью <%@ page import = "..." %>

7
ответ дан 5 December 2019 в 06:37
поделиться

Вы также можете обернуть его в 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" %>

<jsp:useBean id="stateBean" class="com.stackoverflow.q2240722.StateBean" />

<!doctype html>
<html lang="en">
    <head>
        <title>SO question 2240722</title>
    </head>
    <body>
        <select>
            <c:forEach items="${stateBean.values}" var="state">
                <option value="${state}">${state}</option>        
            </c:forEach>
        </select>
    </body>
</html>
9
ответ дан 5 December 2019 в 06:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: