• 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



  • 相关阅读:
    jQuery prop方法
    ftp550权限问题
    一个很适合用来套用后台的框架
    Ajax中post方法400和404的问题
    图片上传,直接通过js预览
    JavaScript的DOM扩展
    DevExpress v16.1.5图表、Dashboard等多个控件API发生变化
    MyEclipse 2016正式版更新内容
    Smart Tag——DevExpress WPF初探
    MyEclipse使用心得:集成和使用Maven的方法
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5197650.html
Copyright © 2020-2023  润新知