Java 如何在struts2中动态获取会话对象
我正在尝试在struts2应用程序中动态获取会话对象Java 如何在struts2中动态获取会话对象,java,session,struts2,ognl,Java,Session,Struts2,Ognl,我正在尝试在struts2应用程序中动态获取会话对象 <s:if test="%{#session['resToken'].bookingType == 1}"> 你不能使用${sessionScope.resToken.bookingType==1}你不能使用${sessionScope.resToken.bookingType==1}如果我读对了,那么resToken的值实际上是会话属性的名称,对吗?因此,可以尝试这样的方法:${sessionScope[resToken].b
<s:if test="%{#session['resToken'].bookingType == 1}">
你不能使用
${sessionScope.resToken.bookingType==1}
你不能使用${sessionScope.resToken.bookingType==1}
如果我读对了,那么resToken
的值实际上是会话属性的名称,对吗?因此,可以尝试这样的方法:${sessionScope[resToken].bookingType}
如果我读对了,那么resToken的值实际上是会话属性的名称,对吗?因此,尝试类似的方法:${sessionScope[resToken].bookingType}
尝试将
标记放在
标记内不是正确的方法。两个标记都使用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>
//我不记得是==还是eq
尝试将
标记放在
标记内不是正确的方法。两个标记都使用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>
//我不记得是==还是eq
'resToken'不等于resToken,后者是一个变量,您似乎希望它是一个字符串 简单地写下:
<s:if test="%{#session[resToken].bookingType == 1}">
如果这不起作用,请使用属性标记输出表达式的较小部分,以查看返回的内容。'resToken'不等于resToken,后者是一个您似乎想要的变量。第一个是字符串 简单地写下:
<s:if test="%{#session[resToken].bookingType == 1}">
如果这不起作用,请使用属性标记输出表达式的较小部分,以查看返回的内容。我已经得到了它的解决方案 首先是重新开始 支票寄存 测试11测试11
我已经得到了它的解决方案 首先是重新开始 支票寄存 测试11测试11
我不确定我给出的EL答案的等效OGNL符号是什么,但我认为需要首先计算
resToken
,而不是将其用作文本属性名称。您可以在EL和OGNL中链接属性,如sessionScope.resToken.bookingType
。您应该注意空值,但支持链接。明白。再一次,也许我误解了这个问题,但是(EL)sessionScope.resToken
和sessionScope[resToken]
@kschneid:事实上,我认为我误解了这个问题。我不确定我给出的EL答案的等效OGNL符号是什么,但是我认为,resToken
需要首先进行计算,而不是用作文本属性名。您可以在EL和OGNL中链接诸如sessionScope.resToken.bookingType
之类的属性。您应该注意空值,但支持链接。明白。再一次,也许我误解了这个问题,但是(EL)sessionScope.resToken
和sessionScope[resToken]
@kschneid:事实上,我认为我误解了这个问题。没有把所有的答案读得足够好。我的答案和你的一样,你的答案排在第一位。没有把所有的答案都读得足够好。我的答案和你的一样,你的答案排在第一位。