ONGL简介.docVIP

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ONGL简介

ONGL简介 ONGL简介(2009-08-10 21:40:56) 转载标签: onglstrutsjava学习杂谈 分类: 学习 OGNL的全称是Object Graph Navigation Language(对象图导航语言),它是一种强大的表达式语言,让你通过简单一致的表达式语法来读取和设置Java对象的属性值,调用对象的方法,遍历整个对象的结构图,实现字段类型转换等功能。 为什么使用OGNL   相对于其它的表达式语言,OGNL的功能更为强大,它提供了很多高级而必需的特性,例如强大的类型转换功能、静态或实例方法的执行、跨集合投影,以及动态lambda表达式定义等。 OGNL基础   OGNL表达式的计算都是围绕OGNL上下文来进行的,OGNL上下文实际上就是一个Map对象,由ognl.OgnlContext类(实现了java.util.Map接口)来表示。OGNL上下文可以包含一个或多个JavaBean对象,在这些对象中有一个是特殊的,这个对象就是上下文的根(root)对象。如果在写表达式的时候,没有指定使用上下文中的哪一个对象,那么根对象将被假定为表达式所依据的对象。 在OGNL上下文中,只能有一个根对象,如果你访问根对象,那么在写表达式的时候,直接写对象的属性就可以了;否则,你需要使用“#key”前缀,例如表达式#。 OGNL表达式   OGNL表达式的基础单元就是导航链,通常简称为链(chain)。最简单的链由下列部分组成:     1、属性名:如name和;     2、方法调用:如manager.hashCode(),返回manager对象的散列码;     3、数组索引:如emals[0],返回当前对象的邮件列表中的第一个邮件地址。   所有OGNL表达式的计算都是在当前对象的上下文中,一个链简单地使用链中先前链接的结果作为下一步计算的当前对象。我们看如下所示的链:   name.toCharArray()[0].numericValue.toString()   这个表达式按照下列的步骤进行计算:     1、获取根对象的name属性;     2、在String结果上调用toCharArray()方法;     3、从char数组中提取第一个字符;     4、从提取的字符对象上行到numericValue属性(这个字符被表示为Character对象,Character类有一个getNumericValue()方法);     5、在Integer对象结果上调用toString()方法。   这个表达式最终结果是最后返回的toString()方法调用返回的字符串。 常量   OGNL支持的所有常量类型:    1、字符串常量:      以单引号或双引号括起来的字符串。如”hello”,’hello’。      不过要注意的是,如果是单个字符的字符串常量,必须使用双引号。    2、字符常量:      以单引号括起来的字符。如’a。    3、数值常量:      除了Java中的int、long、float和double外,OGNL还让你使用“b”或“B”后缀指定BigDecimal常量,用“h”“H”后缀指定BigInteger常量。    4、布尔常量:      true和false。    5、null常量。 操作符   OGNL除了支持所有的Java操作符外,还支持以下几种:    1、逗号,      与C语言中的逗号操作符类似。    2、花括号{}      用于创建列表,元素之间用逗号分隔。    3、in和not in      用于判断一个值是否在集合中。 访问JavaBean的属性   假如有一个employee对象作为OGNL上下文的根对象,那对于下面的表达式:    1、name       对应的java代码是employee.getName();    2、address.country       对应的java代码是employee.getAddress().getCountry(); 访问静态方法和静态字段   @class@method(args)     //调用静态方法   @class@field         //调用静态字段   其中class必须给出完整的类名(包括包名),如果省略class,那么默认使用的类是java.util.Math,如:   @@min(5,3)   @@max(5,3)   @@PI 索引访问   OGNL支持多种索引方式的访问。    1、数组和列表索引      在OGNL中,数组和列表可以大致看成是一样的。      如:array[0]、list[0]。表达式:{’zhangsan’,lisi’

文档评论(0)

cj80011 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档