Sturs2java给jsp传值_struts2和jsp的数据传值

这几天一直在做SSH的网上商城的项目,发现在struts中常用的存取值的方法就那么几种,这里汇总了一下,希望对大家有用。

Session中存取

存入session

ServletActionContext.getRequest().getSession()

.setAttribute("existUser",existUser);

从session中取值

User existUser =(User ) ServletActionContext.getRequest()

.getSession().getAttribute("checkcode");

也就是我们取值的时候是需要强转

放入值湛中

在方法中我们把值放入值站中

ActionContext.getContext().getValueStack().set("listzilei",listzilei);

//取值(循环):

都可以取到值。

当保存在contextMap中时:

ActionContext.getContext().getContextMap().put("listzilei",listzilei);

取值:用

不行

不行

不行

下面都可以取到值:

${listzilei}

3:直接用request.setAttribute()

request.setAttribute("listzilei", listzilei);

*

**

只有这个不行

***

****

*****

${listzilei}

4,Maprequest:

Map request1 = (Map)ActionContext.getContext().get("request");

request1.put("listzilei", listzilei);

*

**

不行

***

****

*****

${listzilei}

总结:说明getContextMap取值的范围比valueStack大一点。只保存在request的attribute中。而ContextMap与手动request.setAtribute()及Map request是一样的。

struts2,a页面url传值,,再执行方法,再到b页面,a.jsp?id=33,在b.jsp页面都可以取到值。

方法中采用

zilei1.action

${id}

*

**

不行

***

****

*****

${id}

点击

b

页面的删除再回到

b

页面,什么都没有。

当struts.xml中用${id}时:

//request.setAttribute("id", id);不行

//ActionContext.getContext().getValueStack().set("id",id);可以

//ActionContext就是ognl上下文,是整个上下文最大的一个。e

//ActionContext.getContext().getContextMap().put("id", id);可以

//request1.put("id", id);不行

当struts.xml中用${request.id}时:

request.setAttribute("id", id);可以

ActionContext.getContext().getValueStack().set("id",id);可以

ActionContext就是ognl上下文,是整个上下文最大的一个。e

ActionContext.getContext().getContextMap().put("id", id);可以

request1.put("id", id);可以

都可以的。

总结:ContextMap在struts.xml文件中可以取到值。用valuestack无法取到值,OgnlValueStack类包含两个重要的属性,一个root和一个context。其中root本质上是一个ArrayList,而context是一个Map(更确切的说是一个OgnlContext对象)。

暂时就把ContextMap和valueStack当成一样就行了,在.xml文件中有区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值