【struts2】(二)值栈

(一)理解值栈

         struts2封装了很多东西,大大的简化了我们的代码。今天我们来看一下struts2是如何存取数据的。

        在使用过程中,我们一般在页面发送一个请求去访问action类,这是会自动创建一个值栈。在使用过程中,我们一般在Action类中查出数据,然后返回到页面上。struts中利用值栈来存储这些数据。

        在struts2中,把数据放到值栈中,然后再jsp中用ognl表达式取出。所有action共用一个堆栈,当需要保存在action中的数据时,首先从栈顶开始 搜索,若找到相同的属性名(与要获得的数据的属性名相同)时,即将值取出

(二)值栈介绍

简单的说:值栈是对应每一个请求对象的轻量级的内存数据中心。在这里统一管理着数据,供Action、Result、Interceptor等Struts2的其他部分使用,这样一来,数据被集中管理起来而不会凌乱,大大方便了程序编写。
Struts2中关于值栈的另外一个很激动人心的特性就是:大多数情况下,你根本无需关心值栈,你不用管它在哪里,不用管它里面有什么,你只需要去获取自己需要的数据就可以了。也就是说,你可以隐式的使用值栈。
当然,如果编写自定义的Result或拦截器等较复杂功能的时候,还是需要显示访问值栈的,因此,还是需要你掌握值栈的知识。

(三)操作值栈

1.如何获取
要获取ActionContext有两个基本的方法,如果在不能获取到ActionInvocation的地方,可以直接使用ActionContext一个静态的getContext方法,就可以访问到当前的ActionContext了

ActionContext ctx = ActionContext.getContext();

2.获取过后,如何使用
 ActionContext主要的功能是用来存放数据的,典型的方法如下:


get(String key):根据key从ActionContext当前的存储空间里面获取相应的值
put(String key, Object value):把值存储在ActionContext的存储空间里面
Map getApplication():返回ServletContext中存储的值
Map getSession():返回HttpSession中存储的值
Map getContextMap():返回当前context存储的值
Map getParameters():返回HttpServletRequest对象里面存储的,客户端提交的参数
ValueStack getValueStack():获取OGNL的值栈
对于getXXX的方法,都有对应的setXXX方法,这里就不去赘述了,具体的请参看Struts2的API文档。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值