0

struts2 タグでネストされたイテレータ内で一度ループしようとしています。これは私がこれまでに持っているものです:

ジャワ:

private List<Parent> allParent = new ArrayList<Parent>();
private List<Children> allChildren = new ArrayList<Children>();

JSP:

<s:iterator value="allParent">
  Parent name: <s:property value="parentName"/>
  <s:iterator value="allChildren">
       First child: <s:property value="childName"/>
  </s:iterator>
</s:iterator>

2 つの反復子を分離すると、すべての項目が完全にリストされます。それらをネストすると、子は表示されません。子供たちに見せてもらった後は、1回だけに制限したいです。

4

2 に答える 2

0

このコードは機能していません。jsp は、アクション クラスにあるリストの下で反復する代わりにallParent呼び出されるゲッターが存在すると考えているためです。getAllChildrenallChildren

考えられる解決策

2 つのリストを 1 つのマップに結合しますMap<Parent, List<Children>> map。次に、jsp ページで、マップとマップの各値を反復処理します。

<s:iterator value="map">
     Parent name: <s:property value="key"/>
     <s:iterator value="value">
         First child: <s:property />
     </s:iterator>
</s:iterator>
于 2012-07-02T18:58:19.860 に答える
0

これを試して:

<s:iterator value="allParent" var="parent">
  Parent name: <s:property value="#parent.parentName"/>
  <s:iterator value="allChildren" var="child">
       First child: <s:property value="#child.childName"/>
  </s:iterator>
</s:iterator>

アップデート

子の 1 つだけを表示したい場合は、s:subsetについて考えてください。

<s:iterator value="allParent" var="parent">
  Parent name: <s:property value="#parent.parentName"/>
  <s:subset source="allChildren" count="what_ever_u_like">
  <s:iterator>
    <s:property />
  </s:iterator>
  </s:subset>
</s:iterator>
于 2012-07-02T19:09:19.520 に答える