zoukankan      html  css  js  c++  java
  • 十九、利用OGNL获取ValueStack中:根栈和contextMap中的数据

    1. 利用OGNL获取ValueStack中:根栈和contextMap中的数据

      原则:OGNL表达式如果以#开头,访问的contextMap中的数据

      如果不以#开头,是访问的根栈中的对象的属性(List集合)

      1、在动作类中

      public String execute() {

              // 操作ValueStack

              // 从当前线程中获取ActionContext对象

              ActionContext ac = ActionContext.getContext();

              // 获取值栈对象,它由两部分组成。第一部分:集合;第二部分:就是ActionContext中的那个Map

              ValueStack vs = ac.getValueStack();

              // 向根栈的栈顶中放一个Map。如果Map存在,直接取出来用,不存在,则创建一个Map,把p=vsp塞进去

              vs.set("p", "vsp");

       

              // 往传统的三大域范围放东西

              // request

              ServletActionContext.getRequest().setAttribute("p", "rp");

              // session

              ServletActionContext.getRequest().getSession().setAttribute("p", "sp");

              // application

              ServletActionContext.getServletContext().setAttribute("p", "AP");

       

              return SUCCESS;

       

          }

       

      2、数据内存结构

       

       

      3在JSP页面中

      <br/> ----显示根栈中的数据----<br/>

          <!-- 从栈顶往下搜索Mapkey或者是对象的属性 -->

          <s:property value="p"/><br/>

          <!--不是栈顶对象:从索引为0的元素开始砍出来之后的那个新集合 -->

          <s:property value="[0]"/><br/>

          <!--取栈顶的那个对象 -->

          <s:property value="[0].top"/><br/>

          

          <br/> ----显示contextMap中的数据----<br/>

          <s:property value="#request.p"/>

          <s:property value="#session.p"/>

          <s:property value="#application.p"/>

       

  • 相关阅读:
    IntelliJ IDEA使用心得之问题篇;
    IntelliJ IDEA使用心得之Maven项目篇
    IntelliJ IDEA使用心得之非Maven项目篇
    IntelliJ IDEA使用心得之插件篇
    IntelliJ IDEA使用心得之快捷键篇
    新博客地址
    【转载】Dijkstra算法和Floyd算法的正确性证明
    【转载】最小生成树之Kruskal算法
    论自动AC机
    【转载】C++ STL priority_queue用法
  • 原文地址:https://www.cnblogs.com/Prozhu/p/5886507.html
Copyright © 2011-2022 走看看