OGNL(Object Graph Navigation Language)是一种强大的表达式语音,它能够自动导航对象的结构和设置对象数据,它的核心是
Context(相当于一个Map容器),
Struts2中OGNL的Context为ActionContext,由值栈、
命名对象(web元素对象)
等对象组成,其中
值栈是OGNL Context的根,值栈中的对象可以直接访问,但访问
ActionContext中
其他对象时需要使用“#”。
1
.
访问
值栈中的对象
<s:property value="user.id"/>
<s:property value="user[id]"/>
2.
访问
命名对象
request
用于访问请求属性。如:#request["user"]或#request.user,相当于调用了HttpServletrequest对象的
session
用于访问session属性。如:#session["user"]或#session.user,相当于调用了Httpsession对象的
application
用于访问application属性。如:#application["user"]或#application.user,相当于调用了
attr
如果不指定范围,可以使用attr来获取属性值,将按page、request、session、application的次序进行搜索
OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言(Expression Language,简称为EL),通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的
表达式
去存取对象的属性。