在struts2值栈中存储数据的三种方式

1.获取值栈对象,调用值栈里面的set方法。

2.获取值栈对象,调用值栈对象的push方法。

3.在action定义变量,生成变量的get方法。(常用)

可使用s:debug标签查看值栈存放的内容

一、调用值栈对象的set方法

Java代码

这里写图片描述

set方法使用map方式储存值,第一个元素为String类型的key,第二个元素为Object类型的value,value中可以存放任意对象。

值栈中的情况

这里写图片描述

可以发现值栈中多了map对象,当调用set方法时,会在list对象中添加一个map对象,里面存放set放入的值。

二、调用值栈对象的push方法

Java代码

这里写图片描述
push方法只接收一个Object类型的参数,可以存放任意类型的对象
push方式是自动将所存的数据转为对应的对象类型,然后放入值栈中

值栈中的情况

这里写图片描述

可以发现值栈中多了String对象,当调用push方法时,会在list对象中添加push方法添加的对象。如放入的是“hello”是String类型,就会放入String对象。

值栈属于栈结构,先进后出,所以放入的数据放在栈顶。

三、在action中生成变量,

Java代码

这里写图片描述

需生成变量的get方法

值栈中的情况

这里写图片描述

可以看出这种方式存值不会在值栈中创建新的对象,而是直接将值存进了值栈中原有的action对象中,这种方式的好处就是避免了值栈中存储空间的浪费,不用为每个值都分别设置存储空间。因此这种方式更加常用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值