在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对象中,这种方式的好处就是避免了值栈中存储空间的浪费,不用为每个值都分别设置存储空间。因此这种方式更加常用。

猜你喜欢

转载自blog.csdn.net/hytxwz/article/details/80514091