Struts2学习小结之基础篇3

Struts2学习总结之基础篇3Struts2标签分类控制标签(if, elseif, else, iterator, append, merge, generato

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>