Sunday, February 13, 2011

Struts 2 Iterator tag example

Source :

Struts 2 Iterator tag example

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 Listlt;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
<%@ 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>


<?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>


  1. is there any way to get value from status like

    plz help..

    this will help me iun nested iterators.

  2. Krishna, I can't see the text after like....
    Please replace < by &lt;