Search code examples
jspstruts2iteratornestedognl

Struts 2 nesting iterators


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.


Solution

  • Try this:

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