Struts2讲义15
if,else ,elseif
标签使用介绍
技术要点
本节代码具体介绍
if 、 else 、 elseif 控制标签的使用方式介绍。
if 、 else 、 elseif 标签使用。
if 、 else 、 elseif 标签功能演示。
演示代码
标签使用 JSP 文件:
<!------------------------- 文件名: ifelseifTag.jsp------------------->
<body>
<h3 align="left">
ifelseif 标签使用范例
</h3>
<s:set name="frank" value="{' 欧龙无苯油漆 ( 六度 )',' 进户门套油漆 ',' 踢脚线 ',' 奥普浴霸 '}" />
<s:if test="%{#frank[1]==' 踢脚线 '}">
<s:property value="%{#frank[1]}" />
</s:if>
<s:elseif test="%{#frank[1]==' 进户门套油漆 '}">
<s:property value="%{#frank[1]}" />
</s:elseif>
<s:else>
不是
</s:else>
</body>
功能演示如图 5.4 。
图 5.4 if 、 else 、 elseif 标签范例图
代码解释
( 1 ) if 标签的功能判断条件是否符合 if 中定义的条件 。和 Java 中 if 的功能相同。
( 2 ) else 标签的功能判断条件是否符合 else 中定义的条件 。和 Java 中 else 的功能相同。
( 3 ) elseif 标签的功能判断条件是否符合 elseif 中定义的条件 。和 Java 中 else if 的功能相同。
( 4 )上述三个标签中 test 都是判断的条件定义。返回的是一个 boolean 值,如果判断条件为真即返回 true 值,则标签中定义的内容才会在页面上显示。如代码所示,网页中显示的是 elseif 标签中的内容。因为只有该标签的 test 返回的是 true ,而且一旦返回 true 值,后面的标签内容也不执行。和 Java 中 if 、 else 的功能是完全相同的。
iterator
标签使用介绍
技术要点
本节代码具体介绍 iterator 控制标签的使用方式介绍。
iterator 标签使用。
iterator 标签功能演示。
演示代码
标签使用 JSP 文件:
<!---------------------------------- 文件名: iteratorTag.jsp----------------------->
<body>
<h3 align="left">
iterator 标签使用范例
</h3>
<s:set name="frank" value="{' 欧龙无苯油漆 ( 六度 )',' 进户门套油漆 ',' 踢脚线 ',' 奥普浴霸 '}" />
<s:iterator value="#frank">
<p>
<s:property />
</p>
</s:iterator>
</body>
功能演示如图 5.5 。
图 5.5 iterator 标签范例图
代码解释
( 1 ) iterator 标签的功能是对某个集合中的所有属性进行迭代遍历 。和 Struts 中的 iterator 标签功能完全相同。其中 id 也和之前记述标签相同。而 value 则可以指定需要被迭代遍历的集合,如果不显式指定,则表示是使用在值栈的栈顶的数据集合。还有一个 status 属性,它其实表示的是 Struts2 中的 IteratorStatus 对象的具体某实例。其中有一些 API 都是和集合的顺序索引有关的。有兴趣的读者可以去参看 Struts2 中 IteratorStatus 的源代码。
( 2 )如代码所示显示了字符串集合 frank (笔者的英文名 )的所有字符串。
merge
标签使用介绍
技术要点
本节代码具体介绍 merge 控制标签的使用方式介绍。
merge 标签使用。
merge 标签功能演示。
演示代码
标签使用 JSP 文件:
<!--------------------------- 文件名: mergeTag.jsp------------------------->
<body>
<h3 align="left">
merge 标签使用范例
</h3>
<s:set name="frank" value="#{'material':' 欧龙无苯油漆 ( 六度 )', 'mount':'500'}" />
<s:set name="jakcy" value="#{'material':' 进户门套油漆 ', 'mount':'800'}" />
<s:merge id="SP">
<s:param value="frank" />
<s:param value="jakcy" />
</s:merge>
<p>
供销商 frank 和 jakcy 手里还有建材
<s:iterator value="#SP">
<tr>
<td>
<p>
<s:property />
</p>
</td>
</tr>
</s:iterator>
</body>
功能演示如图 5.6 。
图 5.6 merge 标签范例图
代码解释
( 1 ) merge 标签的功能和 append 标签功能相同 。唯一的不同点在于 merge 标签合并的集合中各个元素的排列顺序是不同的。如代码所示,可以把图 5.6 和图 5.2 相比较就可知。其属性和 append 标签完全相同。