zoukankan      html  css  js  c++  java
  • 值栈ValueStack的原理与生命周期

    1、ValueStack贯穿整个 Action 的生命周期,保存在request域中,所以ValueStack和request的生命周期一样。当Struts2接受一个请求时,会迅速创建ActionContext, 
    ValueStack,action。然后把action存放进ValueStack,所以action的实例变量可以被OGNL访问。 请求来的时候,action、ValueStack的生命开始,请求结束,action、    ValueStack的生命结束; 
    2、action是多例的,和Servlet不一样,Servelt是单例的; 
    3、每个action的都有一个对应的值栈,值栈存放的数据类型是该action的实例,以及该action中的实例变量,Action对象默认保存在栈顶; 
    4、ValueStack本质上就是一个ArrayList; 
    5、关于ContextMap,Struts 会把下面这些映射压入 ContextMap 中: 
    parameters  :   该 Map 中包含当前请求的请求参数 
    request     :   该 Map 中包含当前 request 对象中的所有属性  session :该 Map 中包含当前 session 对象中的所有属性 
    application :该 Map 中包含当前 application 对象中的所有属性 
    attr:该 Map 按如下顺序来检索某个属性: request, session, application          
    6、使用OGNL访问值栈的内容时,不需要#号,而访问request、session、application、attr时,需要加#号; 
    7、注意: Struts2中,OGNL表达式需要配合Struts标签才可以使用。如:<s:property value="name"/> 
    8、在struts2配置文件中引用ognl表达式 ,引用值栈的值 ,此时使用的"$",而不是#或者%;  

  • 相关阅读:
    CODEVS4650 破损的键盘
    洛谷P1656 炸铁路
    洛谷 P3225 [HNOI2012]矿场搭建
    1265 四点共面
    1406: [AHOI2007]密码箱
    1193: [HNOI2006]马步距离
    1800: [Ahoi2009]fly 飞行棋
    1923: [Sdoi2010]外星千足虫
    I
    2017CCPC秦皇岛G ZOJ 3987Numbers(大数+贪心)
  • 原文地址:https://www.cnblogs.com/GtShare/p/9020051.html
Copyright © 2011-2022 走看看