struts2(二)

 

 

值栈(重要)和ognl表达式

1、  只要是一个mvc框架,必须解决数据的存和取的问题

2、  Struts2利用值栈来存数据,所以值栈是一个存储数据的内存结构

3、  把数据存在值栈中,在页面上利用ognl表达式显示出来

讨论的问题

1、  讨论值栈的生命周期

2、  值栈的内存结构

3、  通过什么样的方法把数据放入到值栈中

4、  显示出来

值栈的内存结构

获取值栈的路径

 

       说明:

1、  值是一样的,说明只有一个对象

2、  因为有一种是从request域中获取的,所以是一次请求

内存结构

1、  大致图:

2、  上面图中的context的放大

说明:

        _root:(CompoundRoot)

        _values:(HashMap)

             在这里存放了request,response,session,application等servlet容器的内容

3、_root的放大

说明:

    和ValueStack中的root是一致的

值栈的内存总图

说明:

     从上图中可以看出valueStack总共分为两个部分:

          对象栈:root

          Map栈:_values

对象栈的存放

1、  Push方法

2、  add方法

对象栈的提取

从上图中可以看出,peek方法为获取对象栈的栈顶的元素

对象栈的元素的弹出*(栈顶的数据弹出)

作对象栈中的对象

 

说明:

     可以利用valueStack.setParameter方法改变对象栈中对象的属性的值

Map栈的存放

猜你喜欢

转载自www.cnblogs.com/hellowq/p/9767859.html
今日推荐