struts2 Map<String>session心得 浅析

我们知道,struts2中对底层的web容器对象做了二次的封装,封装成Map类型的类型用于封装全局的变量,在实践当中对于session用的比较多;那么在struts2中我们有几种方法去获得这种对象呢?下面我们来说说:

1、在你写的action类后面实现 sessionAwaer接口,然后需要实现sessionAware的一个方法,那个方法提供一个Map<String,Object>类型的参数,那就是我们要找的session,我们把他赋值给一个已经定义好的成员变量就行了,得到它之后我们可以使用它的put方法(这就是面向对象的思想)将我们需要用到的全局变量加到session里,这样我们在其他的action类里就可以用同样的方法先得到session,然后再通过sessoin的get方法(不是servlet中session.getAttribute()方法)得到我们需要的数据;另外,我们在session中保存的变量在jsp中也能访问,这里需要用到struts2的标签,首先在jsp中引入标签<%@ taglib uri="/struts-tags" prefix="s"%>,然后在jsp中用<s:property value="#session.XXX">其中XXX是你开始out进session的变量引用,这里为什么要加上#session.呢?那是因为session是保存在值栈的context区,必须加上#再指定在session区 所以要加上#session.不要忘了后面加上小店。

2、我们可以在actoin类中使用 ActionContext.getContext.getSession()或者actionInvocation.getInvocationContext.getSessin()方法获得Map<String,Object>session对象,然后用法和上面就一样了,这样就不用去实现接口了。

3、我们在struts2中也能得到由web服务器创建的session对象,只要我们在action对应的类中用ServletActionContext.getRequest.getSession()方法,这样就得到了servlet底层创建的HttpSession session

4、Map<String,Object>session和HttpSession session中存放的属性可以互访,就是可以相互调用哦!

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值