struts2官方 中文教程 系列十二:控制标签
介绍
struts2有一些控制语句的标签,本教程中我们将讨论如何使用 if 和iterator 标签。更多的控制标签可以参见 tags reference.
到此我们新建一个struts2 web 项目:struts_basic2
本帖地址:struts2官方 中文教程 系列十二:控制标签 即 http://www.cnblogs.com/linghaoxinpian/p/6941683.html
struts2 if标签
我们在thankyou.jsp中添加如下代码:
<s:if test="personBean.over21">
<p>你的年龄足够了,可以进行投票选举</p>
</s:if>
<s:else>
<p>你未达到法定选举年龄.</p>
</s:else>
if标签有一个 test 属性,其表达式的值必须是boolean,这里将调用Person类的getOver21() 方法。当然test属性值不必要一定是要调用一个方法然后返回一个boolean值,也可以是一个表达式,如:
<s:if test="personBean.age>21"> <p>你的年龄足够了,可以进行投票选举</p> </s:if> <s:else> <p>你未达到法定选举年龄.</p> </s:else>
struts2 iterator 标签
Struts迭代器标签用于生成一个循环,该循环遍历集合中的每个项目。
<table style="margin-left:15px">
<s:iterator value="personBean.carModel">
<tr><td><s:property /></td></tr>
</s:iterator>
</table>
该代码的目标是创建一个带有一行的HTML表格,该表格显示用户在编辑页面上选择的汽车模型。<s:property />将为该集合的元素显示单个字符串。
如果集合包含有多个对象字段,那么您应该使用s:property属性的value属性来确定要显示的字段。例如:
<table style="margin-left:15px"> <s:iterator value="states" > <tr><td><s:property value="stateAbbr" /></td> <td><s:property value="stateName" /></tr> </s:iterator> </table>
迭代器标签的value=“states”,这导致Struts 2框架调用Action类(editaction.java)的getStates 方法。getState方法返回一个State对象集合。State类有两个字段:stateAbbr和stateName,它们都有对应的get方法。迭代器将对存储在集合中的每个State对象进行循环。每次通过循环,Struts 2框架将对当前状态对象有一个引用,并为当前状态对象调用getStateAbbr和getStateName方法。
附加的迭代器属性
Struts 2迭代器标签有额外的属性,您可以使用它来控制开始和结束的值,以指定迭代器标签只应该循环遍历集合的一部分。有关更多信息,请参阅迭代器标记引用: iterator tag reference