Подтвердить что ты не робот

Как получить атрибут request/session/servletcontext в JSP с использованием EL?

Я знаю, что это не сложно, но мне не повезло.

Я хочу сделать fooList из сервлета, доступного в JSP. Итак, в Servlet у меня есть:

request.setAttribute("list", fooList);
RequestDispatcher dispatcher = 
  getServletContext().getRequestDispatcher("/myJsp.jsp");
dispatcher.forward(request, response);

Тогда в JSP я хочу:

<c:forEach var="post" items="${SOME_EL_HERE}">
    <!-- stuff -->
</c:forEach>

Где SOME_EL_HERE - это выражение, которое извлекает атрибут, который я установил в request.

Любые мысли? Мое предпочтение заключается в том, чтобы не усложнять простую задачу, добавляя фреймворк, но я открыт для изменений в стратегии.

4b9b3361

Ответ 1

Это просто атрибут name, который вы установили здесь:

request.setAttribute("list", fooList);

Таким образом, "list":

<c:forEach var="post" items="${list}">

Подробнее: EL использует по умолчанию PageContext#findAttribute(), который впоследствии сканирует области страницы, запроса, сеанса и приложения для первого не- null значение атрибута, соответствующее данному имени атрибута.

Если вы хотите явно указать область для случая, когда у вас несколько атрибутов с тем же именем в разных областях, тогда обычный подход заключается в использовании ${pageScope}, ${requestScope}, ${sessionScope} или ${applicationScope}. Например.

<c:forEach var="post" items="${requestScope.list}">

См. также: