gpt4 book ai didi

java - 将变量从 Action 类 (Struts 2) 传递到 JSP

转载 作者:行者123 更新时间:2023-11-30 08:16:28 26 4
gpt4 key购买 nike

技术采用Struts2和JSP在 Jsp 中,我正在检查我的 session 值是否已设置。

<s:if test="%{#session.sessionKey}">

现在我的 Action 类中有另一个随机变量 rndmVar(我不能在 session 范围内设置这个变量。),现在我的 session key 将附加到 sessionKey 变量通过 rndmVar 值,那么如何在 JSP 中检查这个新的 session key 。

我想要类似的东西

<s:if test="%{#session.sessionKey+rndmVar}">  //session key appended by rndmVar value.

第一个问题是如何将此变量从操作类传递到 JSP,以及如何在 JSP 中检查它。

我试过类似的东西

public String rndmVar;
public String getRndmVar() {
return rndmVar;
}
public void setRndmVar(String rndmVar) {
this.lang = lang;
}

比在 Action 类的方法中(这个 Action 类的方法将重定向到 JSP。),我设置了这个随机变量值。

setRndmVar("rndmfdfkad");

我认为 var rndmVar 被添加到值堆栈中并且可以使用 OGNL 访问。但这没有用。

现在我将值放入操作类中的 session 对象中。

String randomVar="fadfjk";
String newSessionKey="sessionKey"+randomVar;
session.put(newSessionKey,"value_part");

现在在 Jsp 中我想检查是否设置了 newSessionKey 变量。现在如何将键值动态传递给 JSP。

<s:if test="#session['sessionKey' + rndmVar] != null">

上面的语法不起作用,实际上它总是给出 null 并进入 else 循环。

在我的 Action 类中

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")); %>

最佳答案

如果您的操作中有带有 getter/setter 的 rndmVar 字段,并且此页面是此特定操作的结果,那么您可以在 JSP 中像这样访问此变量。

<s:property value="rndmVar"/>

要从 session 中获取所需的值,请使用:

<s:if test="#session['sessionKey' + rndmVar] != null">

要从请求参数中获取 rndmVar 值,请使用:

<s:if test="#session['sessionKey'+ #parameters['rndmVar'][0]]">

请注意 #parameters['some_key'] 将返回字符串数组,因为在请求中它可以是多个带有 some_key 的参数。所以如果你想要这个数组中的第一个参数,你需要使用 [0] 来获取它。

同时检查 this question获取有关管理多个选项卡的 session 数据的提示。

关于java - 将变量从 Action 类 (Struts 2) 传递到 JSP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28314725/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com