Struts 2 nesting iterators

Bloodboiler picture Bloodboiler · Feb 24, 2010 · Viewed 24.4k times · Source

I can't believe how something this simple can seem so hard to do in Struts 2.

This is approximately what I would like to do as it would be done in Java.

for (Parent parent : parents){
  for (Child child: parent.getChildren()){
     System.out.println(child.getName());
  }
}

That should translate to something close to this in Stuts tags:

<s:iterator var="parent" value="parents">
  <s:iterator var="child" value="parent.children">
     <s:property value="child.name"/>
  <s:iterator>
<s:iterator>

I assume parent.children should be something like ${%(#parent.children)} but I have not found a right combination of ${%(# characters to use :-). I could also use a link to a page explaining when to use which one of these.

Answer

Nate picture Nate · Feb 25, 2010

Try this:

<s:iterator var="parent" value="parents">
    <s:iterator var="child" value="#parent.children">
        <s:property value="#child.name"/>
    <s:iterator>
<s:iterator>