中世纪的欧洲《礼仪书》中说:痰不要吐到桌子上,也不要飞过桌子。1774年 ,欧洲的《礼仪与基督教礼貌守则》中说:我们再也不能原谅那些把痰吐到窗户 外、墙上或者家具上的人。可见,欧洲人的素质也是在他们工业化富了之后的事 。至少那个时候,我们的老祖宗再不争气,也绝不会把痰吐到桌子上。
1. OGNL 中有生成 List 和 Map 的表达式,分别是:{e1,e2,e3,...} 和 # {key1:val1,key2:val2,...}。对集合 OGNL 提供了两个操作符 in 和 not in, 如:
<s:if test="'foo' in {'foo','bar'}" ... </s:if> ---- not in 的用法当然是一样的了。
之外,OGNL 还允许通过某个规则取集合的子集
·? :取出所有符合条件逻辑的元素
·^:取出符合条件的第一个元素
·$:取出符合条件的最后一个元素
请将上面这三个符号与正则表达式的表示法联系起来
例了:persons.relatives.{? #this.gender == 'male'} //取出集合 persons 中所有 gender 属性为 'male' 的子集。
OGNL 还支持基本的 Lambda(λ) 表达式语法,不过好像有点复杂,暂不关顾 。
2. Struts2 的各路标签已是面目全非了。
<s:if test="exp">...</s:if><s:elseif test="exp">...</s:elseif><s:else>...</s:else> 对应 了 java 的 if/else if/else
<s:iterator.../> value 未指定是默认为 ValueStack 栈顶集合。id 为当前元素变量名。status 为 IteratorStatus 实例,包含奇还是偶行,当前索 引,是否第一或最后一条记录。
3. iterator 可以迭代 List、Set 和数组,也可以迭代 Map,用法如下:
<s:iterator value="{'e1','e2','e3'}" id="name" status="st"> //这是用 OGNL 生成的 List <s:property value="name"/> //也可以写成 <s:property value="#name"/> <s:if test="#st.odd">偶数位 </s:if> // st 其他属必如:#st.count、#st.index、 #st.even、#st.first、#st.last,前面的 # 号不能少 </s:iterator>
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索ognl
, 表达式
, 操作符
Struts2 OGNL
,以便于您获取更多的相关知识。