ØOGNL是ObjectGraphic
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="性别" />