Made little bit change
In TableDataDyno.java
public class TableDataDyno {
private ArrayList<DynaBean> dynaBeans;
public TableDataDyno(int number)
{
dynaBeans = new ArrayList<DynaBean>();
dynaBeans.add(new DynaBean("One",number));
dynaBeans.add (new DynaBean("Two", number));
dynaBeans.add(new DynaBean("Three", number));
}
public ArrayList<DynaBean> getdynaBeans() {
return dynaBeans;
}
}
in jsp file
java.util.ArrayList<TableDataDyno> outerBeans = new java.util.ArrayList<TableDataDyno>();
for(int i=5; i< 10 ; i++)
{
outerBeans.add(new TableDataDyno(i));
}
request.setAttribute("items", outerBeans);
<display:table uid="item" name="items">
<c:forEach var="cl" items="${item.dynaBeans }" varStatus="index">
<display:column title="${cl.title}" property="dynaBeans[${index.index}].value" />
</c:forEach>
</display:table>
gives output
One Two Three
5 5 5
6 6 6
7 7 7
8 8 8
9 9 9
But still for different values we need solution
If I make DynaBean.java as
public class DynaBean {
private String title;
private List<String> value;
public DynaBean(String title, List<String> value) {
this.title = title;
this.value = value;
}
public String getTitle() {
return title;
}
public List<String> getValue() {
return value;
}
}
And TableDataDyno.java as
public class TableDataDyno {
private ArrayList<DynaBean> dynaBeans;
public TableDataDyno()
{
dynaBeans = new ArrayList<DynaBean>();
List<String> arr1 = new ArrayList<String>();
arr1.add("5");
arr1.add("6");
arr1.add("7");
arr1.add("10");
dynaBeans.add(new DynaBean("One",arr1));
List<String> arr2 = new ArrayList<String>();
arr2.add("5");
arr2.add("6");
arr2.add("7");
arr2.add("11");
dynaBeans.add (new DynaBean("Two", arr2));
List<String> arr3 = new ArrayList<String>();
arr3.add("5");
arr3.add("6");
arr3.add("7");
arr3.add("13");
dynaBeans.add(new DynaBean("Three", arr3));
}
public ArrayList<DynaBean> getdynaBeans() {
return dynaBeans;
}
}
then output is
One Two Three
[5, 6, 7, 10] [5, 6, 7, 11] [5, 6, 7, 13]
[5, 6, 7, 10] [5, 6, 7, 11] [5, 6, 7, 13]
Still not getting expected output
Now there is a little trick in jsp page
<display:table uid="item" name="items">
<c:forEach var="cl" items="${item.dynaBeans }" varStatus="index">
<display:column title="${cl.title}" >
<display:table uid="b" name="${cl.value}">
<c:out value="${b}"></c:out>
</display:table>
</display:column>
</c:forEach>
</display:table>
And output is your expected output
One Two Three
5 5 5
6 6 6
7 7 7
10 11 13
Finally we got it !!!! :)