美文网首页Struts2
struts2:值栈的认识

struts2:值栈的认识

作者: 小漫画ing | 来源:发表于2018-05-31 20:39 被阅读0次

    1、之前在web阶段,在servlet里面进行操作,那数据放到一个域对象里面,在页面中使用EL 表达式获取到,域对象 在一定范围内存值和取值。
    2、在struts2里面提供本身一种存储机制,这种机制类似域对象,是值栈,可以存值和取值。
    (1)在action里面把数据放到值栈里面,在页面中获取到值栈数据。
    3、servlet和action的区别:
    (1)servlet,默认在第一次访问时候创建,创建一次。单实例对象
    (2)action,也是在访问的时候创建,但是action每访问都会创建一个action对象,需要创建多次。多实例对象

    我们来看一下代码,来加深记忆,代码实现如下:

    package com.manman.xm;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    public class userAction extends ActionSupport {
        //构造一个构造器
        public userAction() {
            System.out.println("创建了一个action对象、、、、");
        }
    
        @Override
        public String execute() throws Exception {
            // TODO Auto-generated method stub
            return NONE;
        }
    }
    
    

    配置文件如下:

    <package name="demo" extends="struts-default" namespace="/">
            <action name="userAction" class="com.manman.xm.userAction"></action>
        </package>
    

    因为返回值为NONE,所以就没有result。
    写完了代码,就来看看运行结果:


    结果

    只有刷新一次页面,控制台就会多一个运行结果。
    4、值栈的存储位置
    (1)每次访问action时候,都会创建action对象
    (2)在每个action对象里面都会有一个值栈对象。

    获取值栈对象

    1、获取值栈对象有多种方式
    (1)常用方式:使用ActionContext类里面的方法得到值栈对象:

    package com.manman.xm;
    
    import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ActionSupport;
    import com.opensymphony.xwork2.util.ValueStack;
    
    public class userAction extends ActionSupport {
        
        
        @Override
        public String execute() throws Exception {
            
            // 1获取ActionContext类的对象
            ActionContext context = ActionContext.getContext();
            //2调用方法得到值栈对象
            ValueStack stack1 = context.getValueStack();
            return NONE;
        }
    }
    
    

    2、在上面第4点的里面说了,在action对象里面都会有一个值栈对象,那我们来验证一下:

    ValueStack stack1 = context.getValueStack();
    ValueStack stack2 = context.getValueStack();
    System.out.println(stack1==stack2);
    

    运行结果如下:


    结果

    相关文章

      网友评论

        本文标题:struts2:值栈的认识

        本文链接:https://www.haomeiwen.com/subject/zlvxsftx.html