当前位置:小鱼儿玄机二站 > 操作系统 > ValueStack值栈和ActionContext,valuestack

ValueStack值栈和ActionContext,valuestack

文章作者:操作系统 上传时间:2019-11-01

小鱼儿玄机二站,ValueStack值栈和ActionContext,valuestack

Struts2在OGNL之上提供的最大叠合特色正是扶持值栈(ValueStack),在OGNL上下文中只可以有八个根对象,Struts2的值栈则允许存在比超级多虚构对象。

小鱼儿论坛高手,一:值栈(ValueStack)

笔者们能够先拿走ValueStack接口对象

// 01.获取到ValueStack接口对象 ,在request请求中。
HttpServletRequest request = ServletActionContext.getRequest();
ValueStack vs = (ValueStack) request.getAttribute("struts.valueStack");

小鱼儿心水论免费开奖,打上断点进行调解

 

小鱼儿论坛高手 1

上边我们运用Action类分别向Value Stack和Stack Context放值:

       //放到单列Value Stack
        User user = new User();
        user.setAge(12);
        user.setUsername("陈坤");
        vs.getRoot().add(user);
        //放到双列Stack Context(取值得加#)
        vs.getContext().put("user", user);

小编们访问页面:

<h1>取单列Value Stack</h1>
    姓名:<s:property value="username"/><br/>
     <hr/>
 <h1>取双列Stack Context(取值得加#)</h1>
      姓名:<s:property value="#user.username"/><br/>
 <hr/>

结果:

小鱼儿论坛高手 2

大家领悟OGNL中有八个标签 

<s:debug></s:debug>

咱俩采用来监视Value Stack和Stack Context中的值变化

小鱼儿论坛高手 3

明朗,大家在Value Stack中找到大家刚巧投入的值

小鱼儿论坛高手 4

生机勃勃律,大家在Stack Context中也找到大家适逢其会步向的值(内容太多,只截图了后生可畏局地)

 

总结:

     1.Struts2将OGNL上下文设置为Struts第22中学的ActionContext(内部接收的还是是OgnlContext,那点在大家地点调节和测量试验中的图能够显然的看出),并将值栈作为OGNL的根对象。值栈形似高璇常的栈,相符后进先出的栈特点,你能够在值栈中归入,删除和查询对象,值栈是Struts2的为主。

    2.值栈通过二个接口(com.opensymphony.xwork2.util.ValueStack)来定义,对应的落到实处类是com.opensymphony.xwork2.util.OgnlValueStack。

    3.顺着值栈,框架在ActionContext中还放置任何对象,包涵表示application,session和request的Map对象。那么些指标共存于ActionContext中,靠在值栈(OGNL根对象)的边际,

能够例如:

小鱼儿论坛高手 5

 

    4.我们驾驭,OGNL上下文中的根对象能够直接待上访谈,无需接受别的异样的“标识”,而引用上下文中其余对象则须求利用“#”来标志。由于值栈是上下文中的根对象,由此能够直接待上访谈。那么对于值栈中的对象怎样访谈呢?Struts2提供了二个出奇的OGNLProperty Accessor,它能够自行检索栈内的富有目的(从栈顶到栈底),直到找到二个具有你所查的性质的指标。也正是说,对于值栈中的任何对象都足以直接待上访谈,二没有要求运用“#”。

 

Struts2在OGNL之上提供的最大叠合特色就是永葆值栈(ValueStack),在OGNL上下文中一定要有叁个根对象,Stru...

本文由小鱼儿玄机二站发布于操作系统,转载请注明出处:ValueStack值栈和ActionContext,valuestack

关键词: