foreach

説明

group 属性で定義されたオブジェクトのコレクションをループ化します。

foreach タグを使用すると、列挙タイプ (java.util.Enumeration、
javax.naming.NamingEnumeration、java.sql.ResultSet、javax.sql.RowSet、java.util.Iterator、または java.lang.Object[]) が自動的に認識されるため、それぞれのコレクション構造で列挙メソッドを覚える必要がなくなります。コレクションで次のタイプのいずれかが使用される場合に、item および type 属性が使用されます。

スクリプト変数が作成され、コレクションから返されたオブジェクトが保持されます。

構文 1

group 属性を使用して指定されたコレクションからのオブジェクトを返します。

<jrun:foreach
  group="group name"
  item="variable name"
  [type="java.lang.Object|class name"]>
  ...
</jrun:foreach>

属性

group

必須。java.util.Enumerationjavax.naming.NamingEnumeration
java.util.Iteratorallaire.taglib.Tablejava.lang.Object[]、または java.lang.String を取ります。

コレクション名。文字列を指定すると、pageContext.getAttribute() を呼び出 すことで、列挙オブジェクトを見つけることができると仮定されます。

item

特定の group タイプの場合は必須。java.lang.String を取ります。

スクリプト変数名。この属性は、グループ属性が java.util.Enumeration、 javax.naming.NamingEnumeration、java.util.Iterator、または java.lang.Object[] である場合に必要となります。

type

オプション。java.lang.String を取ります。

item を指定した場合、この属性は、item ループのスクリプト変数の作成に使用 されるオブジェクト タイプを示します。既定値は java.lang.Object です。

構文 2

列挙のデータに直接アクセスします。

<jrun:foreach
  group="group name">
  ...
</jrun:foreach>

属性

group

必須。java.sql.ResultSetjavax.sql.RowSet、または java.lang.String を 取ります。

コレクション名。文字列を指定すると、pageContext.getAttribute() を呼び出 すことで、列挙オブジェクトを見つけることができると仮定されます。

スクリプト
変数

item を指定した場合は、その値が変数名として使用されます。

スクリプト変数の情報は次のようになります。

この JSP は、2 種類の foreach 構文の使用方法を示しています。

<%@ page import="allaire.taglib.*" %>
<%@ taglib uri="jruntags" prefix="jrun" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>foreach Tag Example</title></head><body>
<%--
(foreach 構文 1) コレクションからオブジェクトが返されます。
--%>
<jrun:foreach item="c" type="Cookie"
        group="<%= request.getCookies() %>">
<%= c.getname() %>
</jrun:foreach>
<%--
(foreach 構文 2) 列挙のデータに直接アクセスします。
--%>
<jrun:sql datasrc="dsn1" id="rs">
SELECT * FROM Table1
</jrun:sql>

<jrun:param id="rs" type="QueryTable"/>
<jrun:foreach group="<%= rs %>">
... <%= rs.get("column_name") %> ...
</jrun:foreach>
</body></html>