Beim Lesen von Listen und Tabellen ist es praktisch, wenn jede Zeile eine andere Farbe hat und wenn man die aktuelle Zeilennummer ausgibt. Struts2 stellt uns dafür die Klasse IteratorStatus bereit. Mit Hilfe dieser Klasse können wir auf folgende Attribute zugreifen. IteratorStatus
  • index: Die aktuelle Position in der Liste, beginnt mit 0
  • count: Ist immer index +1
  • first: true wenn index == 0
  • even: true wenn (index + 1) % 2 == 0
  • last: true wenn die aktuelle iteration die letzte iteration ist
  • odd: true wenn (index + 1) % 2 == 1

Der Code für die Klasse Iterieren ist recht einfach und besteht nur aus einer gefüllten Liste sowie deren Getter Methode.

import java.util.LinkedList;
import java.util.List;
 
import org.apache.struts2.config.Namespace;
import org.apache.struts2.config.Result;
 
@Result(value = "pages/iterieren.jsp")
@Namespace("/")
public class Iterieren extends BaseSupport {
 
private static final long serialVersionUID = 3577088331304224342L;
 
private List liste;
 
public String execute() {
 
liste = new LinkedList();
liste.add("Warren Buffett");
liste.add("Carlos Slim Helu");
liste.add("William Gates III");
liste.add("Lakshmi Mittal");
liste.add("Mukesh Ambani");
liste.add("Anil Ambani");
liste.add("Ingvar Kamprad");
liste.add("KP Singh");
liste.add("Oleg Deripaska");
liste.add("Karl Albrecht");
liste.add("Li Ka-shing");
liste.add("Sheldon Adelson");
liste.add("Bernard Arnault");
liste.add("Lawrence Ellison");
liste.add("Roman Abramovich");
liste.add("Theo Albrecht");
liste.add("Liliane Bettencourt");
liste.add("Alexei Mordashov");
liste.add("Prince Alwaleed");
liste.add("Mikhail Fridman");
return SUCCESS;
}
 
public List getListe()
{
return liste;
}
}

In der JSP iterieren.jsp können wir jetzt mit dem Struts2 Tag auf unsere Liste zugreifen. Über den IteratorStatus der einzelnen Zeile können wir auf die aktuelle Position zugreifen sowie feststellen, ob die aktuelle Zeilennummer gerade ist.

<%@ taglib prefix="s" uri="/struts-tags" %>
<div style="text-align: center;">
		<table style="width: 450px; text-align:left;">
			<thead>
			<tr>
				<th style="color: #fff; width: 50px;">Position</th>
				<th style="color: #fff; width: 300px;">Milliard&auml;re</th>
			</tr>
			</thead>
			<tbody>
				<s:iterator value="liste" status="rowstatus">
				<tr>
    			<s:if test="#rowstatus.odd == true">
 						<td style="background: aqua;"><s:property value="%{#rowstatus.count}" />.</td>
						<td style="background: aqua;"><s:property/></td>
				</s:if>
				<s:else>
 						<td style="background: blue;"><s:property value="%{#rowstatus.count}" />.</td>
						<td style="background: blue;"><s:property/></td>
				</s:else>
 				</tr>
				</s:iterator>
			</tbody>
		</table>
</div>

Das Ergebnis gibt uns jetzt die Liste der 20 reichsten Personen aus.

Iterieren mit Struts2

Iterieren mit Struts2