Java 将变量从action类(struts2)传递到JSP
使用Struts2和JSP的技术 在Jsp中,我检查会话值是否已设置Java 将变量从action类(struts2)传递到JSP,java,jsp,session,struts2,ognl,Java,Jsp,Session,Struts2,Ognl,使用Struts2和JSP的技术 在Jsp中,我检查会话值是否已设置 <s:if test="%{#session.sessionKey}"> 第一个问题是如何将这个变量从action类传递到JSP,以及如何在JSP中检查它 我试过类似的东西 <s:if test="%{#session.sessionKey+rndmVar}"> //session key appended by rndmVar value. public String rndmVar; publ
<s:if test="%{#session.sessionKey}">
第一个问题是如何将这个变量从action类传递到JSP,以及如何在JSP中检查它
我试过类似的东西
<s:if test="%{#session.sessionKey+rndmVar}"> //session key appended by rndmVar value.
public String rndmVar;
public String getRndmVar() {
return rndmVar;
}
public void setRndmVar(String rndmVar) {
this.lang = lang;
}
而在action方法类(这个action方法类将重定向到JSP)中,我设置了这个随机变量值
setRndmVar("rndmfdfkad");
我认为varrndmVar
是在值堆栈中添加的,可以使用OGNL访问。但这不起作用
请给出您的观点,非常感谢您的帮助。请尽量说清楚一点,我对这个问题缺乏想法,甚至听起来像是一个经典问题:我花了好几个小时试图解决这个问题,但却一事无成
现在,我将把值放在action类中的session对象中
String randomVar="fadfjk";
String newSessionKey="sessionKey"+randomVar;
session.put(newSessionKey,"value_part");
现在在Jsp中,我想检查是否设置了newSessionKey变量。现在,我如何动态地将键值传递给JSP
@阿列克山德M
<s:if test="#session['sessionKey' + rndmVar] != null">
上面的语法不起作用,事实上它总是给出null并进入else循环
在我的动作课上
session.put("sessionKey"+rndmVar,"businessList"); //where businessList is ArrayList<BusinessLogicDTO> businessList
session.put(“sessionKey”+rndmVar,“businessList”)//其中businessList是ArrayList businessList
我能够在jsp中的scriplet标记中看到rndmVar值
<% System.out.println(" Random var value passed from action class 2 JSP "+request.getParameter("rndmVar")); %>
除非值的类型为
布尔值,否则无法检查该值是否设置为这样。相反,如果未设置该值,则该值必须包含一个null
。然后你可以像这样检查它
<s:if test="#session.sessionKey != null">
如果您的操作中有带有getter/setter的rndmVar
字段,并且此页面是此特定操作的结果,那么您可以像在JSP中这样访问此变量
<s:property value="rndmVar"/>
注意#parameters['some_key']
将返回字符串数组,因为它可以是请求中带有some_key
的多个参数。因此,如果需要此数组中的第一个参数,则需要使用[0]
获取它
另外,请检查以获取有关管理多个选项卡的会话数据的提示。…请查看编辑的secion,因为我无法澄清我的问题。您可以使用getter从操作中获取键值,但最好使用sessionKey映射并使用键访问它,而不是使用随机会话变量。Hi s:property prints value为success为什么我没有收到Hi Message看一下这个问题:。在验证答案是否有效之前,您不应该接受答案。将
和
放入jsp中,查看它打印的内容。这意味着您没有设置rndmVar
在您的操作中。请求参数与S2值堆栈不同。
<s:property value="rndmVar"/>
<s:if test="#session['sessionKey' + rndmVar] != null">
<s:if test="#session['sessionKey'+ #parameters['rndmVar'][0]]">