Ø
OGNL是Object
Graphic Navigation Language(对象图导航语言)的缩写,
它是一个开源项目。Struts2框架使用OGNL作为默认的表达式语言。
Ø
通过
OGNL
简单一致的表达式语法,可以存取对象的任意属性,调用对象的方
法,遍历整个对象的结构图。
Ø
使用
OGNL
需要导入
struts
标签
<%@ tagliburi="/struts-tags" prefix="s" %>
Ø
用处:
支持对象方法调用
支持赋值操作和表达式串联
访问
OGNL
上下文和
ActionContent
操作集合对象
Ø调用普通方法
<s:propertyvalue="
'struts'.length()
" />
<s:propertyvalue="
'struts'.charAt(5)
" />
注意
value
中的值不是普通字符串,而是一个
ognl
表达式
Ø
调用静态变量
<s:propertyvalue="@java.lang.Integer@MAX_VALUE" />
<s:propertyvalue="@com.hx.action.OgnlAction@PARAM" /><br>
Ø
调用静态方法
<s:propertyvalue="@java.util.Calendar@getInstance().getTimeInMillis()" />
<s:propertyvalue="@java.lang.Math@abs(-1)" />
<s:propertyvalue="@@abs(-1)" />
//@@
表示调用
Math
类中的静态方法
default.xml
中默认
struts.ognl.allowStaticMethodAccess=false
,需要覆盖改配置项。
Ø
List
赋值
<s:radiolist="{'男','女'}" name="sex" label="性别" />
Ø
Map
赋值
<s:radiolist="#{1:'男',0:'女'}" name="sex" label="性别" />