zoukankan      html  css  js  c++  java
  • 框架学习之Struts2 第八节 OGNL表达式

    1. 介绍 OGNL 表达式语言

    重点:1.相对于EL表达式具有的新功能

             2.Context概念:ActionContext

    28

    2.ActionContext 结构示意图

    注意:1.struts2接收到了一个请求之后会迅速创建AcntionContext,ValueStack,action,然后把action存放在ValueStack中,所以采用ognl表达式就可以访问action的实例变量

             2.标准的OGNL会设定一个根对象(root对象)。假设使用标准OGNL表达式来求值(不使用Struts 2的OGNL表达式),如果OGNL上下文(OgnlContext Map类型)有两个对象:foo对象,在OgnlContext中名称为foo;bar对象,在OgnlContext中名称为bar。同时foo对象被设置为根对象(root)。则利用下面的OGNL表达式求值:

    #foo.blah // 返回foo.getBlah()

    #bar.blah //返回bar.getBlah()

    blah //返回foo.getBlah() ,因为foo为根对象

    访问Ognl Context中的对象需要使用#符号标注命名空间,如#bar,如果要访问的属性属于根对象,则可以省略命名空间,直接访问该属性。

    28_2

    3.通过OGNL表达式获得context中的各个对象中存放的属性值

    28_328_4

    使用EL表达式就可以得到 valueStack 中对象的属性 的原因!

    28_5

    ognl表达式一般要配合和 struts2的 property 标签使用

    28_6

    4. 采用OGNL表达式创建 List、Map 集合对象

    28_7

    判断对象是否在集合中

    28_8

    投影功能

    28_9

  • 相关阅读:
    [记录]MySQL 查询无法导出到文件
    Unity3D 在Update中不要过多地修改Transform 信息
    Unity3D 中 脚本(MonoBehaviour) 生命周期WaitForEndOfFrame需要注意的地方
    RunTime的简单使用
    GIT命令行的使用
    UIImagePickerController和UIAlertController结合使用
    NSSortDescriptor对象进行数组排序
    for..in遍历,枚举器
    Objective
    Objective
  • 原文地址:https://www.cnblogs.com/yinger/p/2119155.html
Copyright © 2011-2022 走看看