1.OGNL
Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语(Expression Language,简称为EL),通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。
Struts2默认的表达式语言是OGNL
2. #
访问OGNL上下文和Action上下文,#相当于ActionContext.getContext() .
3.用于过滤和投影(projecting)集合
?——所有匹配选择逻辑的元素
^——只提取符合选择逻辑的第一个元素
$——只提取符合选择逻辑的最后一个元素
4.内置对象
名称 |
作用 |
示例 |
parameters |
读取请求参数 |
<s:property value="#parameters.id"/> |
request |
读取request中的属性 |
<s:property value="#request.r"/> |
session |
读取session中的属性 |
<s:property value="#session.s"/> |
application |
读取application中的 属性 |
<s:property value="#application.a"/> |
attr |
request > session > application顺序访问 其属性 |
<s:property value="#attr.pc"/> |
5.条件标签 if…elseif…else
主要属性:
◦test : 测试条件
示例
<%! Random rnd = new Random(); %>
<%
int n = rnd.nextInt(200);
pageContext.setAttribute("n", n);
%>
<s:if test="#attr.n % 7 == 0">
恭喜,您中了一等奖!
</s:if>
<s:elseif test="#attr.n % 5 == 0">
恭喜,您中了二等奖!
</s:elseif>
<s:else>
欢迎惠顾!
</s:else>
6.迭代标签 iterator
用于循环数组,集合和Map
属性
◦value:数组,集合或Map
◦var:当前元素
◦status:当前元素的状态
index,count,even,odd,first,last
示例
遍历List
<s:iterator value="{'中华人民共和国', '美利坚合众国', '阿拉伯联合酋长国'}" var="cur" status="st">
<s:property value="#st.count"/>
<s:property value="#cur"/><br/>
</s:iterator>
<s:iterator value="{'中华人民共和国', '美利坚合众国', '阿拉伯联合酋长国'}" var="cur" status="st">
<s:property value="#st.count"/>
<s:property value="#cur"/><br/>
</s:iterator>
遍历Map
<s:iterator value="#{1, '中国', 2, '美国', 3, '日本'}" var="cur">
<s:property value="#cur.key"/>
<s:property value="#cur.value"/><br/>
</s:iterator>
<s:iterator value="#{1, '中国', 2, '美国', 3, '日本'}" var="cur">
<s:property value="#cur.key"/>
<s:property value="#cur.value"/><br/>
</s:iterator>
7.集合合并标签 append和merge
将多个集合合并成一个集合
属性
◦var