我有一个jsp页面。我在iframe中调用jsp页面并将新参数附加到url。
usrl看起来像
的http:\本地主机:8080 \ Search.pp等等= TRUE;
因此,当调用的搜索页面有一些过滤器时,所以在动作类中我有这样的代码
String Parameter =
request.getParameter(blah);
if (StringUtils.isNotEmpty(Parameter)) {
Search = Boolean.parseBoolean(campaignSearchParameter);
}
然后在jsp页面中我执行类似
的操作 final Boolean Search = (Boolean) request.getAttribute("blah") == null ? false : (Boolean) request
.getAttribute("blah");
request.setAttribute("blah",Search);
我使用这个“搜索”布尔变量来隐藏从另一个页面调用的东西。 因此,如果用户单击此页面中的任何链接,它将再次返回到struts相同的操作类。 我的问题是,第一次一切正常。下次我会期望在struts动作中设置这个变量,但看起来它正在返回null。
答案 0 :(得分:0)
只要有问题的HTTP请求存在,请求属性就会生效。它在客户端实际发送它时启动,并在客户端检索到与HTTP请求关联的完整HTTP响应时结束。任何后续请求都是全新的请求,它根本不包含上一个请求的属性副本。
您需要将其作为请求参数传递。例如,作为另一页的形式的隐藏输入字段。
<form ...>
...
<input type="hidden" name="blah" value="${fn:escapeXml(param.blah)}" />
</form>
(JSTL fn:escapeXml()
是为了防止您的网站受到XSS攻击,同时重新显示用户控制的输入)