Struts2学习小结之基础篇3

Struts2学习总结之基础篇3

Struts2标签分类
控制标签
(if, elseif, else, iterator, append, merge, generator,  subset, sort)
数据标签
(bean, param, date, debug, include, set, url, push)

Struts2默认的表达式语言是OGNL
可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。

#
访问OGNL上下文和Action上下文,#相当于ActionContext.getContext() .
构造Map
用于过滤和投影(projecting)集合
?——所有匹配选择逻辑的元素
^——只提取符合选择逻辑的第一个元素
$——只提取符合选择逻辑的最后一个元素

<%@taglib prefix=“s” uri=“/struts-tags”%>

<s:property value="#parameters.id"/>
<s:property value="#request.r"/>
<s:property value="#session.s"/>
<s:property value="#application.a"/>
<s:property value="#attr.pc"/>

<s:iterator value="#{'china':'中国','usa':'美国','e':'俄国'}" var="c">
<s:property value="#c.key"/>--<s:property value="#c.value"/><br/>
</s:iterator>

<%
List<Student> list = new ArrayList<Student>();
list.add(new Student(1, "张三", new Date()));
list.add(new Student(2, "李四", new Date()));
list.add(new Student(3, "王八", new Date()));
pageContext.setAttribute("list", list);
%>
<s:iterator value="#attr.list.{? #this.sid % 2 != 0}" var="cur">
<s:property value="#cur.sname"/>
</s:iterator>
返回张三,王八
<s:iterator value="#attr.list.{^ #this.sid % 2 != 0}" var="cur">
<s:property value="#cur.sname"/>
</s:iterator>
返回张三
<s:iterator value="#attr.list.{$ #this.sid % 2 != 0}" var="cur">
<s:property value="#cur.sname"/>
</s:iterator>
返回王八

<%! 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>