zoukankan      html  css  js  c++  java
  • struts2的总体回想(ACTION、拦截器、值栈、OGNL表达式、ModelDriven方案等)

    ValueStack:struts2的一个存放数据的数据结构(核心)
    ValueStack大致能够理解为:由Map和对象栈组成
    ValueStack作用范围:一个请求,用它来取代request的作用域。
    当来了一个请求时,便创建出一个ValueStack,并进行一些初始化。
    往Map中放:request=...,session=...,application=...,attr=...,parameters=...。等等

    往对象栈中放:action和还有一个默认对象


    拦截器:ModelDriven
    作用:把model放在对象栈栈顶,
    參数拦截器:params
    作用:封装參数,把參数封装到对象栈中,会先封装到对象栈中的属性里(一找到同样属性就封装)


    Action里怎么用ValueStack:ActionContext.getContext().getValueStack()
    JSP里怎么用ValueStack:OGNL表达式
    调用ValueStack
    1.调用map:
    ActionContext.getContext().put(k,v);//将一组对象存入map
    ActionContext.getContext().get(k);//通过key拿到value
    2.调用对象栈:
    ActionContext.getContext().getValueStack().push(obj);//将obj放到栈顶
    ActionContext.getContext().getValueStack().pop();//拿到栈顶对象

    OGNL表达式
    格式:
    在struts.xml中,OGNL的格式为:${ognl}
    在JSP中,OGNL的格式为:%{ognl}
    语法:
    user  = findValue("user")//先找对象栈,再找map,一找到就返回
    #user = map.get("user")//直接从map中获取
    #user.name = map.get("user").getName()


    findValue(expr)的查找顺序
    1.从对象栈中查找指定名称的属性,从栈顶開始向下找,找到后就返回。
    2.假设从对象栈中没有找到属性,则从map中查找相应的key值,找到后就返回。



    EL表达式(struts中):
    作用域查找顺序:page,request。ValueStack.findValue(),session,application



  • 相关阅读:
    520了,用32做个简单的小程序
    安装 部署 postgresql数据库 搭建主从节点 (业务库)
    年轻就该多尝试,教你20小时Get一项新技能
    谷歌搜索进阶(二)
    谷歌搜索进阶(一)
    Linux进程前后台管理(&,fg, bg)
    VTF/AMROC安装指南
    神经网络学习笔记(三):三种典型的架构
    神经网络学习笔记(二):feedforward和feedback
    神经网络学习笔记(一)
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5197650.html
Copyright © 2011-2022 走看看