Struts2-OGNL表达式

Object Graphic Navigation Language 对象图导航语言

struts2中OGNL需要配合struts标签或EL表达式(EL只能访问ValueStack中的对象)才可以使用

访问上下文对象:  #request、#session等,  对于根对象(ValueStack)不需要加#访问

使用struts标签创建集合对象:

<s:set var="mylist" value="{元素一,元素二,元素n}" />

使用struts标签创建map对象

<s:set var="mymap" value="#{key1:value1,key2:value2,keyn:valuen}" />

使用struts标签遍历ognl对象

<s:iterator value="#mylist">  <s:property /><br></s:iterator>

说明:property标签在没有指明value属性时,默认读取ValueStack栈顶的值

<s:iterator value="#mymap">  <s:property value="key"/> = <s:property value="value"/><br></s:iterator>

判断对象是否存在于集合中,使用in或not in

使用投影功能:  mylist:{?#this.属性1 > n}   ---->  返回mylist中属性1的值大于n的元素的集合  ?返回满足条件的子集合  ^返回满足条件的第一个元素  $返回满足条件的最后一个元素

1.#符号的用途一般有三种 –访问非根对象属性,例如示例中的#session.msg表达式,#相当于ActionContext.getContext() –用于过滤和投影(projecting)集合,如persons.{?#this.age>30} –用来构造Map,例如:#{0:'男',1:'女'}

2.%符号 %符号的用途是在标志的属性为字符串类型时,计算OGNL表达式的值

posted @ 2013-03-16 11:08  水不会停留  阅读(159)  评论(0)    收藏  举报