Как динамически получить сессионный объект в struts2 - PullRequest
0 голосов
/ 29 декабря 2010

Я пытаюсь динамически получить объект сеанса в приложении struts2.

<s:if test="%{#session['resToken'].bookingType == 1}">

resToken можно получить по <s:property value="%{resToken}">..

Но я не могу написать <s:property> within <s:if test="">

это дает мне ошибку двойных кавычек ..

org.apache.jasper.JasperException: /WEB-INF/jsp/booking/banquet/guest-Info-View.jsp(150,40) Unterminated &lt;s:if tag 

Ответы [ 5 ]

1 голос
/ 29 декабря 2010

Если я правильно понял, тогда значение resToken на самом деле является именем атрибута сеанса, верно?Итак, попробуйте что-то вроде: ${sessionScope[resToken].bookingType}.

1 голос
/ 29 декабря 2010

Попытка поместить тег <s:property/> внутрь тега <s:if/> не является правильным подходом. Оба тега принимают выражение OGNL в качестве аргумента. Поэтому, если %{resToken} работает для одного, оно должно работать и для другого.

С учетом сказанного, %{#session['resToken'].bookingType} выглядит правильно. Вы пытались вывести значение этого, чтобы увидеть, что это такое? Вы также можете использовать %{#session.resToken.bookingType}. Сначала определите, что вы правильно ссылаетесь на переменную сеанса, а затем убедитесь, что значение действительно == 1.

Или вы можете использовать JSTL / JSP EL, как и другие, предложенные:

// i don't remember off the top of my head if it should be == or eq
<c:if test="${sessionScope.resToken.bookingType eq 1}"></c:if>

OGNL Ссылка

1 голос
/ 29 декабря 2010

Не можете ли вы использовать ${sessionScope.resToken.bookingType == 1}

0 голосов
/ 31 декабря 2010

Я получил его решение ..

сначала установлен resToken

check setTest Test 11 Test 11

0 голосов
/ 30 декабря 2010

'resToken' не равен resToken, последняя - это переменная, которую, как вам кажется, нужно, чтобы первая была строкой.

Просто напишите:

<s:if test="%{#session[resToken].bookingType == 1}">

Если это не сработает, используйте теги свойств для вывода меньших частей выражения, чтобы увидеть, что возвращается.

...