[ SSH框架 ] Struts2框架学习之三(OGNL和ValueStack值栈学习)
一、OGNL概述 1.1 什么是OGNL OGNL的全称是对象图导航语言( object-graph Navigation Language),它是一种功能强大的开源表达式语言,使用这种表达式语言,可以通过某种表达式语法,存取Java对象的任意属性,调用Java对象的方法,同时能够自动实现必要的类型转换。如果把表达式看作是一个带有语义的字符串,那么OGNL无疑成为了这个语义字符串与Java对象之间沟通的桥梁。 1.2 OGNL的作用 Struts2默认的表达式语言就是OGNL,它具有以下特点: ● 支持对象方法调用。例如: objName. methodName( )。 ● 支持类静态方法调用和值访问,表达式的格式为@[类全名(包括包路径)]@[ 方法名|值名 ]。例如:@ java.lang.String@format("foo%s","bar")。 ● 支持赋值操作和表达式串联,例如: price=100, discount=0.8, calculateP rice( ),在方法中进行乘法计算会返回80 ● 访问OGNL上下文( OGNL context)和 ActionContext。 ● 操作集合对象。 1.3 OGNL的要素 了解了什么是 OGNL及其特点后,接下来, 分析一下 OGNL的结构。OGNL的操作实际上就是 围绕着