zoukankan      html  css  js  c++  java
  • Struts2 值栈总结(ValueStack)

    1、获取值栈

    1 //获取值栈的第一种方式
    2         ValueStack valueStack1 = (ValueStack) ServletActionContext.getRequest().getAttribute("struts.valueStack");
    3         //获取值栈的第二种方式
    4         ValueStack valueStack2 = ActionContext.getContext().getValueStack();
    5         System.out.println(valueStack1);
    6         System.out.println(valueStack2);

    2、值栈包括两部分:root栈和map栈

      1、root栈:继承了List接口,又称之为对象栈

      2、map栈:实现了Map接口,又可以称之为上下文栈(context)

    3、Root栈的存值和取值

      1、存值(先进后出)

     1 1、Push压栈   (获取值栈)
     2     valueStack.push("zhangsan");
     3 2、set 压入栈顶 (键值对形式)
     4     //set:创建一个map集合,将数据存入该集合中,最终将map集合压入root栈栈顶
     5     valueStack2.set("name","wangwu");
     6 3、使用成员变量方式
     7     private String name = "maliu";
     8     
     9     public String getName() {
    10     return name;
    11     }

      2、取值

    1、Push 取值
        <!-- 
            通过s:property标签获取数据 
            value:是一个ognl表达式,通过valu值可以到值栈中去查询对应的数据
            [0].top:表示获取root栈栈顶的数据
        -->
        获取栈顶数据:<s:property value="[0].top"/><br>
        获取栈顶数据:<s:property/><br>
    2、set 取值 Or 成员变量方式存值
            <%--
            如果栈顶是map集合:通过集合的key可以直接获取value值
            通过name到值栈中从上往下进行查找,找到的第一个进行返回
         --%>
         获取栈顶map中的数据:<s:property value="name"/><br>

    3、Map栈的存值和取值

      1、存值 or 取值(表示直接从map栈查找,而不是从root栈栈顶开始从上往下查找。)

     1 1、Put 方法存值
     2     //将数据存入map栈
     3     //由于map栈本质就是一个集合,因此存储方式和map一样
     4     ActionContext.getContext().put("name", "tianqi");
     5 2、取值
     6     <%--
     7     从map栈获取数据:在ognl表达式中使用#表示直接从map栈查找数据
     8      --%>
     9      
    10     获取map栈中的数据:<s:property value="#name"/>

    4、%主要作用是控制解析或者不解析

       1 “%”符号的用途是在标签的属性值被理解为字符串类型时,告诉执行环境%{}里的是OGNL表 达式,就比如:<s:textfield value=”%{username}”>。 也可在OGNL表达式中,添加%{‘ ’}或者’’,来让其变成普通 2 字符串而不解析,比如:<s:property value=”%{‘username}’”> 3 4   简单的说:%表达式的作用是,可以让字符串变成支持ognl表达式的解析,也可以让解析的表达式变成字符串, 

    5、$号的使用

      $主要作用是在相关配置文件中引入OGNL表达式,让其在配置文件中也能解析OGNL表达式。(换句话说:$用于在配置文件中获取值栈的值用的。)

  • 相关阅读:
    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.4: install (default-install) on project authorizationManagement-service: Failed to install metadata com.dmsdbj.itoo:autho
    IEDA中使用阿里插件Alibaba Cloud Toolkit和Arthas(阿尔萨斯)
    ECS与EDAS什么意思?
    【学习笔记】随机深林
    R概率分布函数使用小结
    KNN
    K-MEANS
    mac下安装face_recognition
    linux下配置face_recognition
    springboot-actuator
  • 原文地址:https://www.cnblogs.com/RedHat-Linux/p/7932078.html
Copyright © 2011-2022 走看看