• 十九、利用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"/>

       

  • 相关阅读:
    构建之法 团队和流程
    构建之法之个人技术和流程重点介绍
    几种数据库连接
    Ckidt
    hibernate_04_hibernate多对多的关系映射
    hibernate_03_hibernate一对多的关系映射
    hibernate_02_hibernate的入门
    hibernate_01_SSH环境搭建
    SpringBoot_05_ssm拦截器和默认欢迎页面的设置
    SSM14-通过AOP实现日志记录
  • 原文地址:https://www.cnblogs.com/Prozhu/p/5886507.html
Copyright © 2020-2023  润新知