RequestやSession,PageContext?,Applicationなど、あるスコープ内に、配列やイテレータなどのインスタンスが存在するとき、iterateタグを利用することによってループ処理を非常に簡潔に記述することができます。
下のコードは authenticateListというCollectionのインスタンスがrequestにAttributeされている場合のサンプルです。
<logic:iterate id="authenticate" name="authenticateList" scope="request"> <bean:write name="authenticate" property="userId" /> </logic:iterate>
下のコードはjavadocsという名前の配列がrequestスコープに存在する場合のサンプルです。
<logic:iterate id="javadoc" name="javadocs" scope="request"> <tr> <td><bean:write name="javadoc" property="className" /></td> <td><bean:write name="javadoc" property="url" /></td> </tr> </logic:iterate> <%-- id: loop内のBeanの変数名(loop内のbean:writeなどでname属性として使われる) name,scope: scopeからgetAttribute(name) --%>
と記述をすると
といったことが行われます。
下のコードは、getBookmarks()というメソッドで配列を返すインスタンス(bookmarks)が、sessionに存在する場合のサンプルです。
<%-- id: loop内のBeanの変数名(loop内のbean:writeなどでname属性として使われる) name,scope: scopeからgetAttribute(name) property: 配列を返すプロパティ名。下例ではget+bookmarks=getBookmarksというメソッドが呼ばれる --%> <logic:iterate id="bookmark" name="bookmarks" property="bookmarks" scope="session"> <bean:write name="bookmark" property="name" /> <html:link paramName="bookmark" paramId="name" paramProperty="name" page="/edit.do?action=edit">編集</html:link> </logic:iterate>
Iterator が「pageContext」などにいるとする(名前をeとしよう)。そのとき、
<logic:iterate id="user" name="e"> <bean:write name="user" property="userid" /> </logic:iterate>
この記事は
現在のアクセス:521