• 值栈


    什么是值栈:

      值栈就是OGNL表达式存取数据的地方,Struts2是在有请求的时候为每一个请求创建一个新的值栈

      也就是说值栈和请求是一一对应的,值栈封装了一次请求所需要的所有的数据

      这种一一对应的关系使值栈能够线程安全的为每一个请求提供功能的数据存取服务

    值栈的作用:

      值栈可以作为一个数据的中转站,用于在前台,后台之间传递数据,最典型的就是将Struts2的标签和OGNL结合

      值栈实际上是一个接口,在Struts2中使用OGNL时,实际上使用时实现了接口OgnlValueStack类,这个类是ONGL基础

    值栈声明周期:

      valueStack贯穿整个Action声明周期,每个Action对象实例都拥有一个ValueStack对象,在其中保存Action对象和其他对象

      Struts2把ValueStack对象保存在名为“struts.valueStack”的request属性中,ValueStack与Action对象生命周期保持一致

      随着request的创建而创建,销毁而销毁

    值栈的获取方式:

      

    值栈在开发中的应用

      Struts2是一个MVC框架,从Action到页面会涉及数据交换的问题,例如将Action中的数据显示在页面

      值栈的作用就在于解决这样的问题

      两种方式进行数据交换

        属性驱动

      Action代码

    public class ValueStackAction2 extends ActionSupport {
    
        private Customer c;
    
        public Customer getC() {
            return c;
        }
    
        public void setC(Customer c) {
            this.c = c;
        }
    
        public String execute() {
    
            return SUCCESS;
    
        }
    
    }

      配置文件代码

       jsp页面代码  别忘记加<%@taglib prefix="s" uri="/struts-tags"%>

       测试

     

       模型驱动   只有action和jsp页面有区别  其他都和属性驱动一样

    public class ValueStackAction3 extends ActionSupport implements ModelDriven<Customer>{
    
        private Customer c = new Customer();
    
        public String execute() {
    
            return "success2";
    
        }
    
        @Override
        public Customer getModel() {
            // TODO Auto-generated method stub
            return c;
        }
    
    }

      

  • 相关阅读:
    pip install MySQL-python 失败
    E: Unable to correct problems, you have held broken packages
    git 提交顺序
    git 分支
    ubuntu 安装git
    ubuntu 有些软件中不能输入中文
    ubuntu 完全卸载mysql
    Linux中常用操作命令
    基于注解的Spring AOP的配置和使用
    log4j配置详解
  • 原文地址:https://www.cnblogs.com/yz-bky/p/12627015.html
Copyright © 2020-2023  润新知