Struts 2 Iterator tag is used to iterate over a value, which can be any of java.util.Collection or java.util.Iterator. In this tutorials, you will create a list variable, use Iterator tag to loop over it and get the iterator status with IteratorStatus.

1. Action

An Action class with a List property , which contains variety of delicious “KFC combo meals”.


package com.mkyong.common.action;
import java.util.ArrayList;
import java.util.List;
import com.opensymphony.xwork2.ActionSupport;
public class IteratorKFCAction extends ActionSupport{
	private List<String> comboMeals;
	public List<String> getComboMeals() {
		return comboMeals;
	public void setComboMeals(List<String> comboMeals) {
		this.comboMeals = comboMeals;
	public String execute() {
		comboMeals = new ArrayList<String>();
		comboMeals.add("Snack Plate");
		comboMeals.add("Dinner Plate");
		comboMeals.add("Colonel Chicken Rice Combo");
		comboMeals.add("Colonel Burger");
		comboMeals.add("O.R. Fillet Burger");
		comboMeals.add("Zinger Burger");
		return SUCCESS;

2. Iterator example

A JSP page to show the use of Iterator tag to loop over the “KFC comboMeals” List. In Iterator tag, it contains a “status” attribute, which is used to declared a name for IteratorStatus class.

The IteratorStatus class is used to get information about the status of the iteration. Supported properties are index, count, first, last, odd, even and etc..Make sure you visit this IteratorStatus documentation to know more details of it.
<%@ taglib prefix="s" uri="/struts-tags" %>
<h1>Struts 2 Iterator tag example</h1>
<h3>Simple Iterator</h3>
<s:iterator value="comboMeals">
  <li><s:property /></li>
<h3>Iterator with IteratorStatus</h3>
<s:iterator value="comboMeals" status="comboMealsStatus">
  	<s:if test="#comboMealsStatus.even == true">
      <td style="background: #CCCCCC"><s:property/></td>
    <s:elseif test="#comboMealsStatus.first == true">
      <td><s:property/> (This is first value) </td>

3. struts.xml

Link it ~

<?xml version="1.0" encoding="UTF-8" ?>
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
 	<constant name="struts.devMode" value="true" />
	<package name="default" namespace="/" extends="struts-default">
		<action name="iteratorKFCAction" 
			class="com.mkyong.common.action.IteratorKFCAction" >
			<result name="success">pages/iterator.jsp</result>

4. Demo


Struts 2 Iterator tag


  1. Struts 2 Iterator tag example
  2. IteratorStatus documentation
Tags :
Founder of and, love Java and open source stuff. Follow him on Twitter, or befriend him on Facebook or Google Plus. If you like my tutorials, consider make a donation to these charities.

Related Posts

Popular Posts