深入理解struts2中的值栈

1.什么是值栈

(1)之前web阶段

servlet里进行操作,把数据放到域对象中,然后在页面中使用el表达式获取到。域对象就是在一定范围内来存执和取值(属性作用范围)

 

(2)struts2

提供本身的一种存储机制(此前用servlet的对象),类似于域对象,叫做值栈。是可以存值和取值的

action中把数据放到值栈中,然后在页面中获取到值栈数据

 

(3)servletaction的区别

·servlet:默认在第一次访问时创建,创建一次,单实例对象

·action:访问时创建,每次访问action时都会创建一个action对象(执行构造方法),访问多次创建多次。是多实例对象

 

(4)值栈存储位置

·每次访问action时候,都会创建对象

·在每个action对象中都会有一个值栈对象(只有一个)

 

 

2.获取值栈对象

(1)获取值栈对象的多种方式

·常用方式:使用ActionContext类中的方法得到值栈对象

 

·每个action对象中只有一个值栈对象


结果为:true

 

(2)关于栈的理解(后进先出)

 

 

3.值栈的内部结构

(1)值栈分为两部分

第一部分:root,结构是list集合

一般操作的都是root里的数据

 

第二部分:context,结构map集合

 

(2)struts2里的标签s:debug,使用这个标签可以查看值栈结构和存储值

·访问action,执行action的方法有返回值,配置返回值到jsp页面中。我们是在jsp页面中使用这个标签来查看信息

 

点击超链接看到结构

 

·在action没有做任何操作时,栈顶元素是

 

-action对象里面有值栈对象

-值栈对象里面有action引用


以上是个人学习笔记。

增加别人对值栈的理解的连接,以便日后查看:来自简书:来自简书的对值栈的深入浅出的理解 


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值