Struts Logic - <logic:interate>タグ

指定したコレクションを対象に、このタグのネストされたボディ・コンテンツを反復します。

属性

collection
反復する(前述の要件を満たす)コレクションに対し評価を行うランタイム式。
id
nullではない場合、各反復におけるコレクションの現在の要素を含むページ・スコープJSP Beanの名前。
indexId
各反復におけるコレクションの現在の索引を含むページ・スコープJSP Beanの名前。
length
このページで反復する(基礎となるコレクションの)エントリの最大数。この値は、目的の値を直接示す整数値であるか、または目的の値を定義する(任意のスコープの)java.lang.Integer型のJSP Beanの名前になります。指定しない場合、反復の実行回数には制限がなくなります。
name
反復するコレクションを含むJSP Beanの名前(propertyを指定しない場合)、または反復するコレクションを返すプロパティgetterを含むJSP Beanの名前(propertyを指定する場合)。
offset
基礎となるコレクションのエントリを反復する際の開始点となる、ゼロ相対の索引。この値は、目的の値を直接示す整数値であるか、または目的の値を定義する(任意のスコープの)java.lang.Integer型のJSP Beanの名前になります。指定しない場合、ゼロであるとみなされます(つまり、コレクションは最初から反復されます)。
property
反復するコレクションを返すgetterを含む、nameで指定したJSP Beanのプロパティの名前。
scope
nameプロパティで名前を指定したBeanを検索するための範囲となるBeanスコープ。指定しない場合は、すべてのスコープになります。
type
id属性で名前を指定したJSP Beanを介して公開する要素の完全修飾Javaクラス名。指定しない場合、型変換は実行されません。 注意: コレクションの実際の要素は、このクラスに割当て可能である必要があります。割当てが実行できない場合、リクエスト時にClassCastExceptionが発生します。

説明

指定したコレクションの各要素に対して、このタグのネストされたボディ・コンテンツを1回ずつ反復します。このコレクションは、(反復される値を含む)Iterator、Collection、Mapまたは配列となります。次のいずれかの方法により、反復するコレクションを指定します。


反復を正常に実行するには、反復するコレクションが次の要件のいずれかに該当している必要があります。


通常、iterateタグにより公開される各オブジェクトは、基礎となる反復対象のコレクションの要素です。 ただし、Mapを反復する場合、公開されるオブジェクトは、次の2つのプロパティを含むMap.Entry型のオブジェクトです。


このため、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カスタム・タグ・ライブラリについて

リファレンス: Strutsタグ・ライブラリ

リファレンス: Struts Logicタグ・ライブラリ

 

Copyright © 1997, 2004, Oracle. All rights reserved.