[mayaa-user:509] <m:forEach>を使った2重ループ

藤澤 克己 [E-MAIL ADDRESS DELETED]
2007年 5月 21日 (月) 15:59:29 JST


藤澤と申します。forEachプロセッサの使い方についてお聞きしたいことがあります。

リクエストスコープ上にArrayList型の配列があり、個々の要素はJavaビーンとなっっています。
さらに、ビーンのプロパティの一つがArrayListになっています。

■listOp配列
listOp[0] (要素は以下をプロパティに持つJavaビーン)
・opCode <-プロパティ
・value
・listProc<-配列のプロパティ
      listProc[0]
           ・procCode
           ・value
      listProc[1]
           ・procCode
           ・value
listOp[1] 
・opCode
・value
・listProc<-配列のプロパティ
      listProc[0]
           ・procCode
           ・value
      listProc[1]
           ・procCode
           ・value
:
:
入れ子になっている配列をまわしながら個々の値をとりだし、
外側の配列で<tr>タグ(属性値に、opCodeとvalue)
内側の配列で<td>タグ(属性値に、procCodeとvalue)
を作成したいと考え下にありますHTMLテンプレートとmayaaファイルを用意しましたが、
"ReferenceError: "listProc" is not defined. in script=listProc.procCode"
と表示され、うまく動作しません。

■HTMLテンプレート
<table>
    <tbody m:id="loopOp">
        <tr m:id="M_024" class="M_024" op_code="dummy" value="dummy">
            <span m:id="loopProc">
                <td m:id="M_050" class="M_050" proc_code="dummy" value="dummy"/>
            </span>
        </tr>
    </tbody>
</table>

■mayaaファイル
    <m:beforeRender>
        var form = request.getAttribute("InsideCommitmentProcEntryDetailFindForm");
    </m:beforeRender>
    
    <m:doRender m:id="InsideCommitmentProcEntryDetailInput" replace="true" /> 
    
            <m:forEach m:id="loopOp" items="${form.listOp}" var="listOp"/>
                <m:echo m:id="M_024">
                    <m:attribute name="op_code" value="${listOp.opCode}" />
                    <m:attribute name="value" value="${listOp.value}" />
                    <m:doBody />
                    <m:doRender name="loopProc" />
                        <m:forEach m:id="loopProc" items="${listOp.listProc}" var="listProc"/>
                            <m:echo m:id="M_050">
                                <m:attribute name="proc_code" value="${listProc.procCode}" />
                                <m:attribute name="value" value="${listProc.value}" />
                            </m:echo>
                </m:echo>

内側のループをvalue属性を固定値とすると、値は出力され、内側の配列ループ数は正しいようです。

どのように記述すればよろしいでしょうか。
よろしくお願いいたします。



藤澤 克己 <[E-MAIL ADDRESS DELETED]>


mayaa-user メーリングリストの案内