Как получить атрибуты sessionScope в JSTL? - PullRequest
5 голосов
/ 02 января 2012

Задача - получить параметры из сеанса через JSTL.Имя параметра сеанса "programId".

Я пытался:

 <c:if test="${sessionScope.programId != null}" > 
  please execute
  </c:if>

Затем я пытался:

 <c:if test="${sessionScope:programId != null}" > please execute </c:if>

Здесь я получаю: Функция applicationScope: programId не определена

НаверхУ меня есть:

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

Oracle имеет в примерах:

http://docs.oracle.com/javaee/1.4/tutorial/doc/JSTL5.html

 <c:if test="${applicationScope:booklist == null}" > 
   <c:import url="${initParam.booksURL}" var="xml" />
   <x:parse doc="${xml}" var="booklist" scope="application" />
</c:if>  

, где applicationScope может быть заменен sessionScope.

сновасложность "тривиализма" сводит меня с ума.Почему корпорацияпримеры никогда не работают?

Спасибо, ребята,

Ответы [ 3 ]

5 голосов
/ 02 января 2012

Вы читаете не ту страницу учебника.Теги <c:xxx> не принадлежат тегу JSTL XML , который поддерживает синтаксис XPath.Вместо этого он принадлежит тегу JSTL Core , для которого правильная страница учебника имеет вид здесь .

Вместо этого необходимо использовать обычную запись ${bean.property}.

<c:if test="${applicationScope.booklist == null}"> 
   <c:import url="${initParam.booksURL}" var="xml" />
   <x:parse doc="${xml}" var="booklist" scope="application" />
</c:if>

В обычном синтаксисе EL (не XPath!) : определяет начало функции EL.См. Также тег * Функции JSTL для нескольких примеров функций EL, для которых страница учебного руководства здесь .

См. Также:

0 голосов
/ 04 марта 2016

если вы установили сессию в вашем контроллере

session.setAttribute("programID",someValue);

, попробуйте

${sessionScope.programID} in your jsp 

, которая является частью базовой библиотеки jstl

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

и если вы получаете исключение

"${sessionScope:programId != null}" contains invalid expression(s): javax.el.ELException: Failed to parse the expression [${sessionScope:programId != null}] 

, включите jasper.jar в вашу папку lib java brushup для базовых понятий java

0 голосов
/ 02 января 2012

Я не нахожу в вашем коде, что вы установили переменную programID где-то в вашем SessionScope, используя EL что-то похожее на то, что показано ниже.эту переменную, попробуйте сначала установить ее, как указано выше, а затем попробуйте следующее.

<c:if test="${sessionScope:programId != null}" > please execute </c:if>

Должно работать.

...