博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
27.OGNL与ValueStack(VS)-获取Stack Context中的信息
阅读量:6918 次
发布时间:2019-06-27

本文共 1205 字,大约阅读时间需要 4 分钟。

转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html

我们知道,除了可以从值栈中获取信息,还可以从Stack Context中获取信息,只是要加上#,下面我们通过scope对象来演示。首先是在LoginAction中增加如下字段:

Map myRequest;
Map mySession;
随后再用前面提到的“在Action中获取Scope对象”的方式二来完成这些对象的初始化。即实现RequestAware和SessionAware接口。然后再在execute方法中增加如下内容:
myRequest.put("req", "Req属性");

mySession.put("ses", "Ses属性");

最后在loginSuc.jsp中增加如下代码:
获取Request属性:<s:property value="#request.req"/><br>

获取Session属性:<s:property value="#session.ses"/><br>

获取parameters属性:<s:property value="#parameters.mes"/>

说明:我们获取这些对象都用了#,因为这些对象都是存在一般的Context Map中,而不是存在值栈中。别最后一个信息的获取是因为我们在login.jsp中增加了如下代码:
<input type="hidden" name="mes" value="the message is transfer by hidden">
关于这些scope的更多信息可以参看下表:

 

名称

作用

例子

parameters

包含当前HTTP请求参数的Map

#parameters.id[0]作用相当于request.getParameter("id")

request

包含当前HttpServletRequest的属性(attribute)的Map

#request.userName相当于request.getAttribute("userName")

session

包含当前HttpSession的属性(attribute)的Map

#session.userName相当于session.getAttribute("userName")

application

包含当前应用的ServletContext的属性(attribute)的Map

#application.userName相当于application.getAttribute("userName")

Attr

用于按request > session > application顺序访问其属性

#application.userName相当于application.getAttribute("userName")

转载地址:http://zlxcl.baihongyu.com/

你可能感兴趣的文章
android使用startActivityForResult回传参数
查看>>
怎么在Win7下硬盘安装linux?
查看>>
我的友情链接
查看>>
【HTML+CSS+JavaScript】网页实战开发笔记之二—关于Web标准,你不能不知道的事
查看>>
我的友情链接
查看>>
Web系统Spring/SpringMVC启动完成监控
查看>>
Spring HTTP Invoker使用介绍
查看>>
jpeg note
查看>>
一个例子告诉你什么是CLR(JVM同理),以及版本兼容
查看>>
文章记录
查看>>
springAop
查看>>
AJAX入门学习-1:理解ajax
查看>>
ESXi中的虚拟机如何使用U盘
查看>>
把别人的Tcl/Tk代码加入到Go语言里13 游戏6 消除方块
查看>>
${pageContext.request.contextPath} 无效
查看>>
ECMAScript 6 promises(下):谈谈 API(二)
查看>>
C++ bind函数适配器
查看>>
机遇和抉择
查看>>
欧洲现在很流行拥抱开源
查看>>
网站非法信息监测、处理
查看>>