[mayaa-user:758] Re: List<Bean>要素のListフィールドへのアクセス方法(多重ループ)
suga
[E-MAIL ADDRESS DELETED]
2009年 3月 7日 (土) 21:20:38 JST
suga です。
2009/3/6 Sachiko Suzuki <[E-MAIL ADDRESS DELETED]>:
> TypeError: Cannot call method "size" of undefined in script=
> i < categoryRow.eachDetailInfoList.size()
>
> となってしまいます。
メールに記載されている情報からでは原因はわかりませんね。
categoryRow の "eachDetailInfoList" というプロパティが未定義となっているので、
categoryRow のクラスが何なのかを確認するのが早道です。
乱暴ですが
m:test="${ java.lang.System.out.println('' + categoryRow.getClass());
i < categoryRow.eachDetailInfoList.size() }"
などとして確認することもできます。
上記の問題が解決した後ですが、多分実現しようとしていることはメールに
記載されているものでは上手くいかないと思います。
"topcatergory" の定義が mayaa 側にふたつありますが、最初に出現したものしか
使いませんし、m:id="visible" で replace="false" を指定するか、ボディに m:echo を
書くかしないと visible の td は消えてしまいます。
おそらく、こんな感じで意図した物になると思います。
---- html
(<html xmlns:m="http://mayaa.seasar.org"> として m: を有効にしています
html の id は無視するように設定するのがおすすめです。
http://mayaa.seasar.org/documentation/equals_id_resolver.html)
<table>
<tbody>
<tr m:id="categoryLoop">
<td m:id="topcatergory" class="topt" colspan="1"
rowspan="1" nowrap="nowrap">
<span m:id="topname">testtop</span>
</td>
<td m:id="middlecatergory" class="style25">
<span id="middlename">testmiddle</span>
</td>
<td m:id="detailLoop">
<div class="style30">
<span m:id="color">
<span m:id="act">aaaa</span>
</span>
</div>
</td>
</tr>
</tbody>
</table>
---- mayaa
<m:beforeRender><![CDATA[
// ユーティリティは Java で定義した方が使い回しや速度面で有利ですが、
// 簡単のためここで定義しています。
function spanValue(intValue) {
if (intValue >= 2) {
return intValue;
}
return null;
}
]]></m:beforeRender>
<m:forEach m:id="categoryLoop" items="${ actionForm.categoryBeanList
}" var="categoryRow">
<m:echo><m:doBody /></m:echo>
</m:forEach>
<m:if m:id="topcatergory" test="${ categoryRow.categoryShowFlg == 1 }">
<m:echo>
<m:attribute name="colspan" value="${
spanValue(categoryRow.colspan) }" />
<m:attribute name="rowspan" value="${
spanValue(categoryRow.rowspan) }" />
<m:doBody />
</m:echo>
</m:if>
<m:write m:id="topname" value="${ categoryRow.categoryName }" />
<m:if m:id="middlecatergory" test="${ categoryRow.colspan < 2 }">
<m:echo>
<m:attribute name="colspan" value="${
spanValue(categoryRow.colspan) }" />
<m:attribute name="class" value="style_b" />
<m:doBody />
</m:echo>
</m:if>
<m:write m:id="middlename" value="${ categoryRow.lowerCategoryName }" />
<m:forEach m:id="detailLoop" items="${ categoryRow.eachDetailInfoList
}" var="detail">
<m:echo><m:doBody /></m:echo>
</m:forEach>
<m:echo m:id="color">
<m:attribute name="class" value="${ detail.style }" />
</m:echo>
<m:write m:id="act" value="${ detail.detailName }" />
--
suga ( [E-MAIL ADDRESS DELETED] )
mayaa-user メーリングリストの案内