将变量从操作 class (Struts 2) 传递到 JSP
Passing variable from action class (Struts 2) to JSP
使用的技术 Struts2 和 JSP
在 Jsp 中,我正在检查我的会话值是否已设置。
<s:if test="%{#session.sessionKey}">
现在我的操作中有另一个随机变量 rndmVar
class(我不能在会话范围内设置这个变量。),现在我的会话密钥将附加 sessionKey
变量按 rndmVar
值,那么如何在 JSP.
中检查这个新会话密钥
我想要
<s:if test="%{#session.sessionKey+rndmVar}"> //session key appended by rndmVar value.
第一个问题如何将此变量从操作 class 传递到 JSP,以及我将如何在 JSP.
中检查它
我试过
public String rndmVar;
public String getRndmVar() {
return rndmVar;
}
public void setRndmVar(String rndmVar) {
this.lang = lang;
}
比在操作方法class中(此操作方法class将重定向到JSP。),我设置了这个随机变量值。
setRndmVar("rndmfdfkad");
我认为 var rndmVar
被添加到值堆栈中并且可以使用 OGNL 访问。但这没有用。
现在我将值放入会话对象中 class as.
String randomVar="fadfjk";
String newSessionKey="sessionKey"+randomVar;
session.put(newSessionKey,"value_part");
现在 Jsp 我想检查是否设置了 newSessionKey
变量。现在如何将键值动态传递给 JSP.
<s:if test="#session['sessionKey' + rndmVar] != null">
以上语法不起作用,实际上它总是给出 null
并进入 else 循环。
在我的行动中class
session.put("sessionKey"+rndmVar,"businessList"); //where businessList is ArrayList<BusinessLogicDTO> businessList
我能够在 JSP.
的 scriplet 标签中看到 rndmVar
值
<% System.out.println(" Random var value passed from action class 2 JSP "+request.getParameter("rndmVar")); %>
您无法检查值是这样设置的,除非该值的类型为 Boolean
。相反,如果未设置该值,则它必须包含 null
。然后你可以这样检查
<s:if test="#session.sessionKey != null">
一个随机值可以用作sessionKey
定义的集合的索引。
例如,如果 sessionKey
是 Map<String, Object>
并且它被放入 #session
那么您可以使用随机值检查对象
<s:if test="#session.sessionKey[rndmVar] != null">
如果您的操作中有 rndmVar
字段和 getter/setter,并且此页面是此特定操作的结果,那么您可以在 JSP 中像这样访问此变量。
<s:property value="rndmVar"/>
要从会话中获取所需的值,请使用:
<s:if test="#session['sessionKey' + rndmVar] != null">
要从请求参数中获取 rndmVar
值,请使用:
<s:if test="#session['sessionKey'+ #parameters['rndmVar'][0]]">
请注意 #parameters['some_key']
将是 return 字符串数组,因为在请求中它可以有多个带有 some_key
的参数。所以如果你想要这个数组中的第一个参数,你需要使用 [0]
来获取它。
另请检查 this question 以获取有关管理多个选项卡的会话数据的提示。
使用的技术 Struts2 和 JSP 在 Jsp 中,我正在检查我的会话值是否已设置。
<s:if test="%{#session.sessionKey}">
现在我的操作中有另一个随机变量 rndmVar
class(我不能在会话范围内设置这个变量。),现在我的会话密钥将附加 sessionKey
变量按 rndmVar
值,那么如何在 JSP.
我想要
<s:if test="%{#session.sessionKey+rndmVar}"> //session key appended by rndmVar value.
第一个问题如何将此变量从操作 class 传递到 JSP,以及我将如何在 JSP.
中检查它我试过
public String rndmVar;
public String getRndmVar() {
return rndmVar;
}
public void setRndmVar(String rndmVar) {
this.lang = lang;
}
比在操作方法class中(此操作方法class将重定向到JSP。),我设置了这个随机变量值。
setRndmVar("rndmfdfkad");
我认为 var rndmVar
被添加到值堆栈中并且可以使用 OGNL 访问。但这没有用。
现在我将值放入会话对象中 class as.
String randomVar="fadfjk";
String newSessionKey="sessionKey"+randomVar;
session.put(newSessionKey,"value_part");
现在 Jsp 我想检查是否设置了 newSessionKey
变量。现在如何将键值动态传递给 JSP.
<s:if test="#session['sessionKey' + rndmVar] != null">
以上语法不起作用,实际上它总是给出 null
并进入 else 循环。
在我的行动中class
session.put("sessionKey"+rndmVar,"businessList"); //where businessList is ArrayList<BusinessLogicDTO> businessList
我能够在 JSP.
的 scriplet 标签中看到rndmVar
值
<% System.out.println(" Random var value passed from action class 2 JSP "+request.getParameter("rndmVar")); %>
您无法检查值是这样设置的,除非该值的类型为 Boolean
。相反,如果未设置该值,则它必须包含 null
。然后你可以这样检查
<s:if test="#session.sessionKey != null">
一个随机值可以用作sessionKey
定义的集合的索引。
例如,如果 sessionKey
是 Map<String, Object>
并且它被放入 #session
那么您可以使用随机值检查对象
<s:if test="#session.sessionKey[rndmVar] != null">
如果您的操作中有 rndmVar
字段和 getter/setter,并且此页面是此特定操作的结果,那么您可以在 JSP 中像这样访问此变量。
<s:property value="rndmVar"/>
要从会话中获取所需的值,请使用:
<s:if test="#session['sessionKey' + rndmVar] != null">
要从请求参数中获取 rndmVar
值,请使用:
<s:if test="#session['sessionKey'+ #parameters['rndmVar'][0]]">
请注意 #parameters['some_key']
将是 return 字符串数组,因为在请求中它可以有多个带有 some_key
的参数。所以如果你想要这个数组中的第一个参数,你需要使用 [0]
来获取它。
另请检查 this question 以获取有关管理多个选项卡的会话数据的提示。