ValueStack理解与实践

    ValueStack对象是Struts2中一个重要的对象,它贯穿整个Action的生命周期,每个Action类的对象实例会拥有一个ValueStack对象。
     在ValueStack对象中主要封装了两个对象,一个是Context,另一个是栈。其中Context是一个Map对象,其操作方法主要是put()与get()方法;而栈是一种只能在一端进行插入和删除操作的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。它的主要操作方法是push()、pop()、peek()方法。
   

     在项目实践中,如显示列表数据,可以将其查询到的数据List存放于Context中,其方法如下:

     ActionContext.getContext().put("departmentList", departmentList);

     而在jsp页面中,可使用<s:iterator value="#departmentList">迭代数据,由于Context是Map结构所以需要加上#号。

     如编辑数据时,需要显示回显数据,可以将数据压到栈顶,代码如下:

     // 准备回显的信息
     Department department = departmentService.getById(model.getId());
     ActionContext.getContext().getValueStack().push(department);

     那么在JSP页面中直接可以使用Struts2标签取出。

 

 

    

    

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值