Struts 2.0 Iterator标签
Iterator标签可以用来遍历集合对象。要求集合的类型必须是java.util.Collection或者是java.util.iterator。
下面是一个非常简单的例子:
<s:iterator id=”userobj” value=”userlist” status=”user_stat”>
User name : <s:property value=”name”/>
</s:iterator>
内部迭代器,最上面的值应该是在循环中当前object对象。当取“name”时,其实是“current——list——object.name”
当前对象将值付给“id”字段,userobj.name映射“name”。
下面我将写一个简单的iterator实例。实例中,将action中放入的对象集合用iterator标签的形式展现到iteratordemo.jsp页面中。
IterateDemo.java
package tags.iterate.action;
import java.util.ArrayList;
import java.util.List;
import tags.dto.Customer;
import com.opensymphony.xwork2.ActionSupport;
public class IterateDemo extends ActionSupport{
List<Customer> customers;
public String execute() {
customers = new ArrayList<Customer>();
Customer c = new Customer();
c.setName("George Joseph");
c.setAge(45);
c.setEmail("george@struts2.org");
customers.add(c);
c = new Customer();
c.setName("Mary Philip");
c.setAge(22);
c.setEmail("mary@struts2.org");
customers.add(c);
return SUCCESS;
}
public List<Customer> getCustomers() {
return customers;
}
public void setCustomers(List<Customer> customers) {
this.customers = customers;
}
}
Customer.java
package tags.dto;
public class Customer {
private String name;
private int age;
private String email;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
iteratedemo.jsp
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
</head>
<style>
.cust {border:0px solid blue;border-collapse:collapse;}
.cust th{ background-color:#ddd;color:#666;text-align:left;border:1px solid white;padding:5px;}
.cust td{padding:5px;}
.cust tr.odd {background-color:#fafbff;}
.cust tr.even {background-color:#f4f4ff;}
</style>
<body>
<table class="cust">
<tr>
<th>Name</th>
<th>Age</th>
<th>Email</th>
</tr>
<s:iterator value="customers" id="customer" status="cust_stat">
<tr class="<s:if test="#cust_stat.odd == true">odd</s:if><s:else>even</s:else>">
<td><s:property value="name" /></td>
<td><s:property value="age" /></td>
<td><s:property value="email" /></td>
</tr>
</s:iterator>
</table>
</body>
</html>
Struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="tags" extends="struts-default">
<action name="IterateDemo"
class="tags.iterate.action.IterateDemo">
<result>/tags/iteratedemo.jsp</result>
</action>
</package>
</struts>
输出结果:
