| Refresh | Home EGTry.com

use list of list in nested forEach loop


jstl

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@page import="com.egtry.SimpleObject" %>
<%@page import="java.util.List,java.util.ArrayList" %>

<h3>List of List of customer object</h3>

<%
 List<List<SimpleObject>> list1=new ArrayList<List<SimpleObject>>();

 List<SimpleObject> list2=new ArrayList<SimpleObject>();
 list2.add(new SimpleObject("A1"));
 list2.add(new SimpleObject("A2"));
 list2.add(new SimpleObject("A3"));
 list1.add(list2);

 list2=new ArrayList<SimpleObject>();
 list2.add(new SimpleObject("B1"));
 list2.add(new SimpleObject("B2"));
 list2.add(new SimpleObject("B3"));
 list1.add(list2);

 list2=new ArrayList<SimpleObject>();
 list2.add(new SimpleObject("C1"));
 list2.add(new SimpleObject("C2"));
 list2.add(new SimpleObject("C3"));
 list1.add(list2);


 pageContext.setAttribute("model", list1);

%>


<c:forEach var="outer" items="${model}" varStatus="seq1">

  <h3>seq1: ${seq1.count}</h3>  

  <c:forEach var="inner" items="${outer}" varStatus="seq2">
    seq2: ${seq2.count} - ${inner.name}  <br/>
  </c:forEach>

</c:forEach>



Output:

List of List of customer object

seq1: 1

seq2: 1 - A1
seq2: 2 - A2
seq2: 3 - A3

seq1: 2

seq2: 1 - B1
seq2: 2 - B2
seq2: 3 - B3

seq1: 3

seq2: 1 - C1
seq2: 2 - C2
seq2: 3 - C3

SimpleObject.java

package com.egtry;

public class SimpleObject {
	private String name;
	
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public SimpleObject(String name) {
		this.name=name;
	}
}