传说中的第一种方式,这种在Struts2.1权威指南的例子中也木有说明白:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<table border="1" width="360px" align="center">
<caption>Demos</caption>
<s:iterator id="demo" value="DemoList" status="index">
<tr>
<td>${demo.name}</td>
<td>${demo.age}</td>
</tr>
</s:iterator>
</table>
</body>
</html>

第二种方式:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<table border="1" width="360px" align="center">
<caption>Demos</caption>
<s:iterator id="demo" value="DemoList" status="index">
<tr>
<td><s:property value="#demo.name"/></td>
<td><s:property value="#demo.age"/></td>
</tr>
</s:iterator>
</table>
</body>
</html>

作者 陈字文(热衷于PM\ORACLE\JAVA等,欢迎同行交流)EMAIL:ziwen@163.com  QQ:409020100

理论知识:
iterator的主要作用就是对集合进行遍历,其中包含List,Set以及数组,并且,该标签也可以对Map进行遍历迭代输出。
使用iterator标签的时候可以指定三个元素:
第一个元素 value 这个是指定的是被迭代的集合,这个集合通常使用OGNL表达式进行指定。如果没有指定value属性的话,就使用ValueStack栈顶的集合。
第二个元素 id 这个是一个可选的属性,这个属性指定了在集合中元素的id. 上面就是可以使用"#id.name"的方式来获取值
第三个元素 status这属性指定迭代的时候IteratorStatus实例,通过这个实例可以获取当前元素的序号以及相关元素的索引等等.