logic:iterateの使い方
1729 ワード
例:
collectionは集合を表す.例えば:List.
nameはrequestを表す.setXXの集合.
間違った書き方を例に挙げて説明します.
アクション:
request.setAttribute("orders",order.getXXXList());
ページ:
間違いの書き方1:
エラーの原因:
間違いの書き方2:
エラーの原因:
正しい書き方:
setAttributeのkeyに対応する必要があります.
lengthはサイクル数を表す.
logic:equalと組み合わせて使用
上のlogic:equalは、indexが0に等しい場合にhtml:buttonを表示します.indexはlogic:iterateのインデックス番号です
nameの値を${index}と書かないでください.これは間違っています.
strutsラベルのname属性は対応するrequestである.setAttribute(key,value)のkey.
<logic:iterate id="hotelOrderDetail" collection="${order.hotelOrderDetails}" indexId="index" length="1">
<bean:write name="hotelOrderDetail" property="orderTime" format="yyyy-MM-dd HH:mm" />
</logic:iterate>
collectionは集合を表す.例えば:List.
nameはrequestを表す.setXXの集合.
間違った書き方を例に挙げて説明します.
アクション:
request.setAttribute("orders",order.getXXXList());
ページ:
間違いの書き方1:
name="order.hotelOrderDetails"
エラーの原因:
Cannot find bean: "order.hotelOrderDetails" in any scope
間違いの書き方2:
name="${order.hotelOrderDetails}"
エラーの原因:
javax.servlet.jsp.JspException: Cannot find bean: "[com.iteye.entity.HotelOrderDetail@8c167495, com.iteye.unicom.entity.HotelOrderDetail@fcd70622]" in any scope
正しい書き方:
name="orders"
setAttributeのkeyに対応する必要があります.
lengthはサイクル数を表す.
logic:equalと組み合わせて使用
<logic:iterate id="hotelOrderDetail" collection="${order.hotelOrderDetails}" indexId="index">
<logic:equal name="index" value="0">
<html:button property="" value=" " styleId="addRoom"/>
</logic:equal>
</logic:iterate>
上のlogic:equalは、indexが0に等しい場合にhtml:buttonを表示します.indexはlogic:iterateのインデックス番号です
nameの値を${index}と書かないでください.これは間違っています.
strutsラベルのname属性は対応するrequestである.setAttribute(key,value)のkey.