深入理解struts2中的值栈

来源:互联网 发布:双色球选号软件破解版 编辑:程序博客网 时间:2024/05/17 12:04

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引用


以上是个人学习笔记。

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


原创粉丝点击