1.OGNL技术的使用
1 ) .什么是OGNL
来源于ognl.jar工具包
对象图导航语言)。
主要用于访问对象的数据和方法。
2 ).OGNL的基本原理
OGNL工具主要由三个部分组成,具体如下
a.OGNL发动机
负责ONGL公式的分析、数据的检索
b .根存储区(Object类型) b.Root
负责保存要访问的目标对象。
c.Context变量存储区(映射类型) )
存储多个要访问的目标对象。
*3).OGNL基本语法
访问根区域对象的基本语法
-访问简单数据:“属性”
例如“name”
-访问数组或List集合:属性[0]
例如,' arr[1] )那样
访问地图集合:属性['key']或属性. key
例如' map.two '或' map['two'] '
-访问方法:属性值.方法()、
例如' list.size () )。
-访问构建方法:“new包名称.构建方法”
例如' new java.util.Date () )。
-访问静态成员: @包名称.类名@成员
例如,' @java.lang.Math@PI '
创建List对象: ' {元素1,元素2} '
创建地图对象:
' #{key1:value1,key2:value2} '
访问上下文区域对象的基本语法
以“#Key”开头。
2.OGNL技术在Struts中的应用
Struts2具有一个ValueStack数据对象,用于存储与请求相关的所有数据信息。
例如,请求、会话、应用程序、操作等。
Struts2使用OGNL工具操作值堆栈。
1 ) xwork对OGNL进行了部分改造
用xwork将原OGNL标准结构中的Root存储区域改造成了一个堆栈结构(CompoundRoot )
通过“属性”表达式访问时,优先去查找堆栈顶部的对象,而不第二次查找堆栈顶部。
2 )堆栈结构(OgnlValueStack )。
(请参阅valuestack.jpg )
3 )使用Struts2标签
在JSP中,要在Struts2标签中显示数据,必须在标签中指定OGNL表达式。
标签使用表达式在ValueStack中搜索数据并执行相应的操作。
a )调试标签:指示堆栈的状态
b )迭代器标记:循环集合元素
value属性:指定ognl
var特性:指定存储在值堆栈上下文区域中的循环变量。
status属性:指定存储在值堆栈上下文区域中的循环状态变量。
该变量具有count属性,指示一共循环了多少个元素。
索引属性表示当前循环元素的索引。
c ) if.else .标签:判断分支
test属性:指定ognl判定式
d )属性标记:显示数据
value属性:指定ognl表达式
e ) date标签:格式化并输出date数据
name属性:指定ognl表达式
格式属性:指定日期模板