8

Struts 2で、これほど単純なことを行うのがいかに難しいか、信じられません。

これは、Javaで行われるのとほぼ同じです。

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

これは、Stutsタグでこれに近いものに変換されるはずです。

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

parent.childrenは${%(#parent.children)}のようなものであると思いますが、$ {%(#使用する文字:-)の正しい組み合わせが見つかりませんまた、これらのどれをいつ使用するかを説明するページへのリンクを使用することもできます。

4

4 に答える 4

13

これを試して:

<s:iterator var="parent" value="parents">
    <s:iterator var="child" value="#parent.children">
        <s:property value="#child.name"/>
    <s:iterator>
<s:iterator>
于 2010-02-25T20:32:09.033 に答える
4

わたしにはできる:

<s:iterator value="parents">
    <s:iterator value="children">
        <s:property value="name" />
    </s:iterator>
</s:iterator>
于 2010-02-26T10:27:39.037 に答える
1

JSPコードは次のようになります。

    <s:form action="saveaction" >
        <s:iterator value="lstBean" id="lstBean" status="outerStat">
            <s:textfield value="%{name}" name="lstBean[%{#outerStat.index}].name"/>
            <s:textfield value="%{amt}" name="lstBean[%{#outerStat.index}].amt"/>
            <s:textfield value="%{id}" name="lstBean[%{#outerStat.index}].id"/>
            <s:iterator value="%{lstString}" status="myStat">
                <s:textfield name="lstBean[%{#outerStat.index}].lstString[%{#myStat.index}]"/>
            </s:iterator>
        </s:iterator>
        <s:submit value="Click me to submit lstBean"/>
    </s:form>

以下は、JSPでリストが使用されるbean(XBean)です。

public class XBean
{    
private ArrayList<String> lstString=new ArrayList<String>();
private String name;
private Double amt;
private Integer id;
//Getters and setters of fields
}

これで、送信アクション(saveaction)にセッターを含むフィールドlstBeanを設定するだけで、完了です。

于 2011-02-16T13:07:12.457 に答える
0

Struts 2.3.xの場合、 http: //struts.apache.org/release/2.3.x/docs/iterator-tag-examples.htmlから抽出したこの例を使用できます。

この例では、「countries」は国オブジェクトのリストであり、それぞれに名前と都市のリストがあります。各都市には名前があります。

<s:iterator value="countries">
    <s:iterator value="cities">
        <s:property value="name"/>, <s:property value="[1].name"/><br>
    </s:iterator>
</s:iterator>

それらはスタック上の特定の位置を参照します:'[1]'。スタックの一番上である位置0には、内側のイテレーターによってプッシュされた現在の都市が含まれています。位置1には現在の国が含まれ、外側のイテレータによってそこにプッシュされます。

于 2014-10-23T16:05:10.500 に答える