指定したコレクションを対象に、このタグのネストされたボディ・コンテンツを反復します。
collection
id
null
ではない場合、各反復におけるコレクションの現在の要素を含むページ・スコープJSP Beanの名前。
indexId
length
java.lang.Integer
型のJSP Beanの名前になります。指定しない場合、反復の実行回数には制限がなくなります。
name
property
を指定しない場合)、または反復するコレクションを返すプロパティgetterを含むJSP Beanの名前(property
を指定する場合)。
offset
java.lang.Integer
型のJSP Beanの名前になります。指定しない場合、ゼロであるとみなされます(つまり、コレクションは最初から反復されます)。
property
name
で指定したJSP Beanのプロパティの名前。
scope
name
プロパティで名前を指定したBeanを検索するための範囲となるBeanスコープ。指定しない場合は、すべてのスコープになります。
type
id
属性で名前を指定したJSP Beanを介して公開する要素の完全修飾Javaクラス名。指定しない場合、型変換は実行されません。 注意: コレクションの実際の要素は、このクラスに割当て可能である必要があります。割当てが実行できない場合、リクエスト時にClassCastException
が発生します。
指定したコレクションの各要素に対して、このタグのネストされたボディ・コンテンツを1回ずつ反復します。このコレクションは、(反復される値を含む)Iterator、Collection、Mapまたは配列となります。次のいずれかの方法により、反復するコレクションを指定します。
collection
属性の値で指定するランタイム式とする場合
name
属性で指定するJSP Beanとする場合
name
属性で指定するJSP Bean内の、property
属性で指定するプロパティとする場合
反復を正常に実行するには、反復するコレクションが次の要件のいずれかに該当している必要があります。
ArrayList
およびVector
を含むjava.util.Collection
の実装
java.util.Enumeration
の実装
java.util.Iterator
の実装
HashMap
、Hashtable
およびTreeMap
を含むjava.util.Map
の実装 (注意: Mapにアクセスする場合の詳細は、次の記述を参照してください)
通常、iterateタグにより公開される各オブジェクトは、基礎となる反復対象のコレクションの要素です。 ただし、Mapを反復する場合、公開されるオブジェクトは、次の2つのプロパティを含むMap.Entry型のオブジェクトです。
key
: この項目が、基礎となるMapに格納されるキー
value
: このキーに対応する値
このため、Hashtableの値を反復する場合は、次のようなコードを実装します。
<logic:iterate id="element" name="myhashtable">
Next element is <bean:write name="element" property="value"/>
</logic:iterate>
反復するコレクションにnull値が含まれている場合、ループは実行されますが、ループ中に(id
属性で名前を指定した)ページ・スコープ属性は作成されません。
<logic:present>
タグと<logic:notPresent>
タグを使用すると、このケースをテストできます。
JDeveloperのStrutsカスタム・タグ・ライブラリについて
Copyright © 1997, 2004, Oracle. All rights reserved.