采用OGNL表达式创建List/Map集合对象
如果需要一个集合元素的时候(例如
List
对象或者
Map
对象),可以使用
OGNL
中同集合相关的表达式。
使用如下代码直接生成一个
List
对象:
<s:set name="list" value="{'zhangming','xiaoi','liming'}" />
<s:iterator value="#list" id="n">
<s:property value="n"/><br>
</s:iterator>
生成一个
Map
对象:
<s:set name="foobar" value="#{'foo1':'bar1', 'foo2':'bar2'}" />
<s:iterator value="#foobar" >
<s:property value="key"/>=<s:property value="value"/><br>
</s:iterator>
Set
标签用于将某个值放入指定范围
。
scope
:指定变量被放置的范围,该属性可以接受
application
、
session
、
request
、
page
或
action
。如果没有设置
该属性,则默认放置在
OGNL Context
中。
value
:
赋给变量的值
.
如果没有设置该属性
,
则将
ValueStack
栈顶的值赋给变量。
采用OGNL表达式判断对象是否存在于集合中
对于集合类型,
OGNL
表达式可以使用
in
和
not in
两个元素符号。其中,
in
表达式用来判断某个元素是否在指定的
集合对象中;
not in
判断某个元素是否不在指定的集合对象中,如下所示。
in
表达式:
<s:if test="'foo' in {'foo','bar'}">
在
</s:if>
<s:else>
不在
</s:else>
not in
表达式:
<s:if test="'foo' not in {'foo','bar'}">
不在
</s:if>
<s:else>
在
</s:else>