为了控制输出Struts 2的ValueStack中封装的值,Struts 2提供了大量的标签。其中比较常用的标签有:
if:该标签支持标签体,如果if标签里判断的表达式返回真,则输出标签体内容。
else:该标签不能独立使用,它需要与if标签结合使用,如果if标签内判断的表达式返回假,则输出该标签里的标签体。
iterator:主要用于迭代输出某个集合属性的各个集合元素。
property:该标签用于输出指定属性值。
<%@ page language="java" contentType="text/html; charset=GBK" %>
<!-- 导入Struts 2的标签库 -->
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>作者李刚的图书</title>
</head>
<body>
<table border="1" width="360">
<caption>作者李刚的图书</caption>
<!-- 迭代输出ValueStack中的books对象,其中status是迭代的序号 -->
<s:iterator value="books" status="index">
<!-- 判断序号是否为奇数 -->
<s:if test="#index.odd == true">
<tr style="background-color:#cccccc">
</s:if>
<!-- 判断迭代元素的序号是否不为偶数 -->
<s:else>
<tr>
</s:else>
<td>书名:</td>
<td><s:property/></td>
</tr>
</s:iterator>
</table>
</body>
</html>
上面的JSP页面使用了Struts 2的标签库,因此必须在JSP页面的首部添加taglib指令,该taglib指令用于导入标签库。
提示 如果需要使用某个标签库中的标签,则必须在页面的开始导入该标签库。
页面中使用Struts 2的iterator标签迭代输出ValueStack中的books数组,并为每个数组元素定义了一个序号:index。通过判断序号是否为奇数,如果行序号为奇数,则输出一个有背景色的表格行;否则输出一个无背景色的表格行。
=====================================================