Struts2传值的3种方式

以前在Servlet中有两种传值方式:

第一种:通过得到当前的Request对象,通过request.setAttribute(key,value)将值绑定到request中,通过转发,就能在不同的Servlet或JSP中通过request.getAttribute(key)进行取值。

第二种:通过当前的request.getSession().setAttribute(key,value)将值绑定到当前会话中,只要会话存在,就是在任何的Servlet或jSP中通过request.getSession.getAttribute(key)取到值。



现在在Struts2中的传值方式:

第一种:通过实现org.apache.struts2.interceptor.ServletRequestAware这个接口,重写它的setServletRequest(HttpServletRequest request)方法得到Request。得到request后传值方式与上面的第一种方式一样。

第二种:通过ActionContext contx= ServletActionContext.getContext(); Map<String,Object> map=contx.getSession();得到一个Map,把值放用key,value形式放入Map中,相当于session.setAttribute(key,value)一样。

第三种:通过ActionContext contx= ServletActionContext.getContext(); 得到一个Struts2独有的ActionContext,这是Struts2的上下文对象,只要是在Struts这个框架中都可以得到,其功能类似于在多个页面进行转发的Request,也就是说多个JSP共享的同一个Request,用contx.put(key,value)这个方式对Struts2上下文进行赋值,在其他的Action中只要得到ActionContext 对象,用get(key)就可以取值。

说明:ServletActionContext是继承了ActionContext的子类,ActionContext contx= ServletActionContext.getContext();也可以是ActionContext contx=ActionContext.getContext();.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值