これは、Struts Logicタグ・ライブラリの開発者ガイドです。この項には、Apache Software Foundation(http://www.apache.org/
)およびそれ以外のサード・パーティによって作成されたドキュメントが含まれます。
このタグ・ライブラリには、出力テキストの条件付き生成の管理、出力テキストを繰り返し生成するためのオブジェクト・コレクションのループおよびアプリケーション・フロー管理に役立つタグが含まれます。
値の比較を実行するタグ(equal
、greaterEqual
、greaterThan
、lessEqual
、lessThan
またはnotEqual
)では、次の規則が適用されます。
double
またはlong
に正常に変換できる場合は、最終的な比較が数値(浮動小数点または整数のいずれか)であるとみなされます。それ以外の場合は、文字列の比較が実行されます。
cookie
、header
、name
、parameter
およびproperty
)に基づいて取得されます。こうして決定された変数は、比較のため適切な型に変換されます。
true
が返されると、このタグのネストされたボディ・コンテンツが評価されます。
部分文字列の一致を実行するタグでは(match
、notMatch
)、次の規則が適用されます。
cookie
、header
、name
、parameter
およびproperty
)に基づいて取得されます。変数は、必要に応じて文字列に変換されます。
location
属性で指定した位置に変数の部分文字列として存在するかどうかがチェックされます。この位置は、最初の部分(locationをstart
に設定した場合)、最後の部分(locationをend
に設定した場合)または任意の部分(locationを指定しない場合)のいずれかです。
このタグ・ライブラリ内のタグの多くは、誤って使用すると(無効な組合せのタグ属性を指定した場合など)、実行時にJspException
をスローします。JSPでは、<%@ page %>
ディレクティブでエラー・ページを宣言できます。問題を引き起こした実際の例外を処理する場合、それはキーorg.apache.struts.action.EXCEPTION
のリクエスト属性としてエラー・ページに渡されます。
タグ名 | 説明 |
---|---|
empty | リクエストした変数がnullまたは空の文字列である場合、このタグのネストされたボディ・コンテンツを評価します。 |
equal | リクエストした変数が指定した値と等しい場合、このタグのネストされたボディ・コンテンツを評価します。 |
forward | 指定したActionForwardエントリにより指定されるページにコントロールをフォワードします。 |
greaterEqual | リクエストした変数が指定した値以上の場合、このタグのネストされたボディ・コンテンツを評価します。 |
greaterThan | リクエストした変数が指定した値を超える場合、このタグのネストされたボディ・コンテンツを評価します。 |
iterate | 指定したコレクションを対象に、このタグのネストされたボディ・コンテンツを反復します。 |
lessEqual | リクエストした変数が指定した値以下の場合、このタグのネストされたボディ・コンテンツを評価します。 |
lessThan | リクエストした変数が指定した値未満の場合、このタグのネストされたボディ・コンテンツを評価します。 |
match | 指定した値がリクエストした変数の部分文字列に一致する場合、このタグのネストされたボディ・コンテンツを評価します。 |
messagesNotPresent | 指定したメッセージがこのリクエスト内に存在しない場合、このタグのネストされたボディ・コンテンツを生成します。 |
messagesPresent | 指定したメッセージがこのリクエスト内に存在する場合、このタグのネストされたボディ・コンテンツを生成します。 |
notEmpty | リクエストした変数がnullまたは空の文字列ではない場合、あるいは空のjava.util.Collectionではない場合(java.util.Collectionインタフェースの .isEmpty()メソッドによりテストされる)、このタグのネストされたボディ・コンテンツを評価します。 |
notEqual | リクエストした変数が指定した値と等しくない場合、このタグのネストされたボディ・コンテンツを評価します。 |
notMatch | 指定した値がリクエストした変数の部分文字列に一致しない場合、このタグのネストされたボディ・コンテンツを評価します。 |
notPresent | 指定した値がこのリクエスト内に存在しない場合、このタグのネストされたボディ・コンテンツを生成します。 |
present | 指定した値がこのリクエスト内に存在する場合、このタグのネストされたボディ・コンテンツを生成します。 |
redirect | HTTPリダイレクトをレンダリングします。 |
Struts 1.1以上。
指定した値が存在しない(つまり、null
である)場合、空の文字列(つまり、長さゼロのjava.lang.String
)である場合、または空のjava.util.Collection(java.util.Collectionインタフェースの .isEmpty()メソッドによりテストされる)である場合にのみ、ネストされたボディ・コンテンツを評価します。
属性名 | 説明 |
---|---|
name |
比較される変数は、この属性で指定したJSP Bean( (RT EXPR) |
property |
比較される変数は、この属性で指定した( (RT EXPR) |
scope |
(RT EXPR) |
セレクタ属性のいずれか1つによって指定した変数を、指定した定数値と比較します。変数と値が等しい場合、このタグのネストされたボディ・コンテンツを評価します。
属性名 | 説明 |
---|---|
Cookie |
比較される変数は、この属性で指定した名前を持つCookieの値になります。 (RT EXPR) |
header |
比較される変数は、この属性で指定した名前を持つヘッダーの値になります。名前の一致では、大文字と小文字の区別はありません。 (RT EXPR) |
name |
比較される変数は、この属性で指定したJSP Bean( (RT EXPR) |
parameter |
比較される変数は、この属性で指定したリクエスト・パラメータの最初(または唯一)の値になります。 (RT EXPR) |
property |
比較される変数は、この属性で指定した( (RT EXPR) |
scope |
(RT EXPR) |
value |
このタグの他の属性で指定した変数と比較するための定数値。 (REQUIRED)(RT EXPR) |
指定した名前のグローバルActionForward
エントリに対し、PageContext.forward()
コールまたはHttpServletResponse.sendRedirect()
コールを実行します。URLリライティングは、リダイレクトが実行されると自動的に行われます。
属性名 | 説明 |
---|---|
name |
使用する宛先およびフォワード・アプローチを識別するグローバル (REQUIRED)(RT EXPR) |
セレクタ属性のいずれか1つによって指定した変数を、指定した定数値と比較します。変数が値以上の場合、このタグのネストされたボディ・コンテンツを評価します。
属性名 | 説明 |
---|---|
Cookie |
比較される変数は、この属性で指定した名前を持つCookieの値になります。 (RT EXPR) |
header |
比較される変数は、この属性で指定した名前を持つヘッダーの値になります。名前の一致では、大文字と小文字の区別はありません。 (RT EXPR) |
name |
比較される変数は、この属性で指定したJSP Bean( (RT EXPR) |
parameter |
比較される変数は、この属性で指定したリクエスト・パラメータの最初(または唯一)の値になります。 (RT EXPR) |
property |
比較される変数は、この属性で指定した( (RT EXPR) |
scope |
(RT EXPR) |
value |
このタグの他の属性で指定した変数と比較するための定数値。 (REQUIRED)(RT EXPR) |
セレクタ属性のいずれか1つによって指定した変数を、指定した定数値と比較します。変数が値を超える場合、このタグのネストされたボディ・コンテンツを評価します。
属性名 | 説明 |
---|---|
Cookie |
比較される変数は、この属性で指定した名前を持つCookieの値になります。 (RT EXPR) |
header |
比較される変数は、この属性で指定した名前を持つヘッダーの値になります。名前の一致では、大文字と小文字の区別はありません。 (RT EXPR) |
name |
比較される変数は、この属性で指定したJSP Bean( (RT EXPR) |
parameter |
比較される変数は、この属性で指定したリクエスト・パラメータの最初(または唯一)の値になります。 (RT EXPR) |
property |
比較される変数は、この属性で指定した( (RT EXPR) |
scope |
(RT EXPR) |
value |
このタグの他の属性で指定した変数と比較するための定数値。 (REQUIRED)(RT EXPR) |
指定したコレクションの各要素に対して、このタグのネストされたボディ・コンテンツを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>
タグを使用すると、このケースをテストできます。
属性名 | 説明 |
---|---|
collection |
反復する(前述の要件を満たす)コレクションに対し評価を行うランタイム式。 (RT EXPR) |
id |
(REQUIRED)(RT EXPR) |
indexId |
各反復におけるコレクションの現在の索引を含むページ・スコープJSP Beanの名前。 (RT EXPR) |
length |
このページで反復する(基礎となるコレクションの)エントリの最大数。この値は、目的の値を直接示す整数値であるか、または目的の値を定義する(任意のスコープの) (RT EXPR) |
name |
反復するコレクションを含むJSP Beanの名前( (RT EXPR) |
offset |
基礎となるコレクションのエントリを反復する際の開始点となる、ゼロ相対の索引。この値は、目的の値を直接示す整数値であるか、または目的の値を定義する(任意のスコープの) (RT EXPR) |
property |
反復するコレクションを返すgetterを含む、 (RT EXPR) |
scope |
(RT EXPR) |
type |
(RT EXPR) |
セレクタ属性のいずれか1つによって指定した変数を、指定した定数値と比較します。変数が値以下の場合、このタグのネストされたボディ・コンテンツを評価します。
属性名 | 説明 |
---|---|
Cookie |
比較される変数は、この属性で指定した名前を持つCookieの値になります。 (RT EXPR) |
header |
比較される変数は、この属性で指定した名前を持つヘッダーの値になります。名前の一致では、大文字と小文字の区別はありません。 (RT EXPR) |
name |
比較される変数は、この属性で指定したJSP Bean( (RT EXPR) |
parameter |
比較される変数は、この属性で指定したリクエスト・パラメータの最初(または唯一)の値になります。 (RT EXPR) |
property |
比較される変数は、この属性で指定した( (RT EXPR) |
scope |
(RT EXPR) |
value |
このタグの他の属性で指定した変数と比較するための定数値。 (REQUIRED)(RT EXPR) |
セレクタ属性のいずれか1つによって指定した変数を、指定した定数値と比較します。変数が値未満の場合、このタグのネストされたボディ・コンテンツを評価します。
属性名 | 説明 |
---|---|
Cookie |
比較される変数は、この属性で指定した名前を持つCookieの値になります。 (RT EXPR) |
header |
比較される変数は、この属性で指定した名前を持つヘッダーの値になります。名前の一致では、大文字と小文字の区別はありません。 (RT EXPR) |
name |
比較される変数は、この属性で指定したJSP Bean( (RT EXPR) |
parameter |
比較される変数は、この属性で指定したリクエスト・パラメータの最初(または唯一)の値になります。 (RT EXPR) |
property |
比較される変数は、この属性で指定した( (RT EXPR) |
scope |
(RT EXPR) |
value |
このタグの他の属性で指定した変数と比較するための定数値。 (REQUIRED)(RT EXPR) |
セレクタ属性(文字列)のいずれか1つによって指定した変数と、指定した定数値が一致しているかどうかを検証します。値が(location
属性により適切に制限された)部分文字列と一致する場合、このタグのネストされたボディ・コンテンツを評価します。
属性名 | 説明 |
---|---|
Cookie |
一致させる変数は、この属性で指定した名前を持つCookieの値になります。 (RT EXPR) |
header |
一致させる変数は、この属性で指定した名前を持つヘッダーの値になります。名前の一致では、大文字と小文字の区別はありません。 (RT EXPR) |
location |
指定しない場合、変数と値の一致が、変数文字列内の任意の位置で実行される場合があります。指定する場合、一致は変数文字列内の指定した位置( (RT EXPR) |
name |
一致させる変数は、この属性で指定したJSP Bean( (RT EXPR) |
parameter |
一致させる変数は、この属性で指定したリクエスト・パラメータの最初(または唯一)の値になります。 (RT EXPR) |
property |
一致させる変数は、この属性で指定した( (RT EXPR) |
scope |
(RT EXPR) |
value |
指定した変数の部分文字列として存在するかどうかをチェックする定数値。 (REQUIRED)(RT EXPR) |
Struts 1.1以上。
ActionMessages
オブジェクト、ActionErrors
オブジェクト、文字列、または文字列の配列がリクエスト・スコープに存在しない場合、このタグのネストされたボディ・コンテンツを評価します。このようなBeanが検出されない場合は、何もレンダリングされません。
属性名 | 説明 |
---|---|
message |
デフォルトでは、このタグは、反復するリクエスト・スコープBeanを (RT EXPR) |
name |
リクエスト・スコープからメッセージを取得するためのパラメータ・キー。 (RT EXPR) |
property |
メッセージの取得対象のプロパティの名前。指定しない場合、すべてのメッセージが(プロパティに関係なく)取得されます。 (RT EXPR) |
Struts 1.1以上。
ActionMessages
オブジェクト、ActionErrors
オブジェクト、文字列、または文字列の配列がリクエスト・スコープに存在する場合、このタグのネストされたボディ・コンテンツを評価します。このようなBeanが検出されない場合は、何もレンダリングされません。
属性名 | 説明 |
---|---|
message |
デフォルトでは、このタグは、反復するリクエスト・スコープBeanを (RT EXPR) |
name |
リクエスト・スコープからメッセージを取得するためのパラメータ・キー。 (RT EXPR) |
property |
メッセージの取得対象のプロパティの名前。指定しない場合、すべてのメッセージが(プロパティに関係なく)取得されます。 (RT EXPR) |
指定した属性が存在する(つまり、null
ではない)場合、および空の文字列(つまり、長さゼロの文字列のjava.lang.String
)ではない場合にのみ、ネストされたボディ・コンテンツを評価します。
属性名 | 説明 |
---|---|
name |
比較される変数は、この属性で指定したJSP Bean( (RT EXPR) |
property |
比較される変数は、この属性で指定した( (RT EXPR) |
scope |
(RT EXPR) |
セレクタ属性のいずれか1つによって指定した変数を、指定した定数値と比較します。変数と値が等しくない場合、このタグのネストされたボディ・コンテンツを評価します。
属性名 | 説明 |
---|---|
Cookie |
比較される変数は、この属性で指定した名前を持つCookieの値になります。 (RT EXPR) |
header |
比較される変数は、この属性で指定した名前を持つヘッダーの値になります。名前の一致では、大文字と小文字の区別はありません。 (RT EXPR) |
name |
比較される変数は、この属性で指定したJSP Bean( (RT EXPR) |
parameter |
比較される変数は、この属性で指定したリクエスト・パラメータの最初(または唯一)の値になります。 (RT EXPR) |
property |
比較される変数は、この属性で指定した( (RT EXPR) |
scope |
(RT EXPR) |
value |
このタグの他の属性で指定した変数と比較するための定数値。 (REQUIRED)(RT EXPR) |
セレクタ属性(文字列)のいずれか1つによって指定した変数と、指定した定数値が一致しているかどうかを検証します。値が(location
属性により適切に制限された)部分文字列と一致しない場合、このタグのネストされたボディ・コンテンツを評価します。
属性名 | 説明 |
---|---|
Cookie |
一致させる変数は、この属性で指定した名前を持つCookieの値になります。 (RT EXPR) |
header |
一致させる変数は、この属性で指定した名前を持つヘッダーの値になります。名前の一致では、大文字と小文字の区別はありません。 (RT EXPR) |
location |
指定しない場合、変数と値の一致が、変数文字列内の任意の位置で実行される場合があります。指定する場合、一致は変数文字列内の指定した位置( (RT EXPR) |
name |
一致させる変数は、この属性で指定したJSP Bean( (RT EXPR) |
parameter |
一致させる変数は、この属性で指定したリクエスト・パラメータの最初(または唯一)の値になります。 (RT EXPR) |
property |
一致させる変数は、この属性で指定した( (RT EXPR) |
scope |
(RT EXPR) |
value |
指定した変数の部分文字列として存在するかどうかをチェックする定数値。 (REQUIRED)(RT EXPR) |
指定した値が存在しない場合にのみ、指定した属性に応じて、現在のリクエストをチェックし、このタグのネストされたボディ・コンテンツを評価します。property
属性を指定しない場合、このタグ1つに対していずれか1つの属性のみを指定できます。property
属性を指定する場合は、name属性も必要です。
属性名 | 説明 |
---|---|
Cookie |
指定した名前のCookieが存在するかどうかをチェックします。 (RT EXPR) |
header |
指定した名前のHTTPヘッダーが存在するかどうかをチェックします。名前の一致では、大文字と小文字の区別はありません。 (RT EXPR) |
name |
指定した名前のJSP Beanが、任意のスコープ内に存在するかどうかをチェックします。 (RT EXPR) |
parameter |
パラメータ値が長さゼロの文字列である場合も含め、指定したリクエスト・パラメータがこのリクエストに少なくとも1つ存在するかどうかをチェックします。 (RT EXPR) |
property |
(RT EXPR) |
role |
現在の認証されたユーザー(存在する場合)が、指定したセキュリティ・ロールと関連付けられているかどうかをチェックします。 (RT EXPR) |
scope |
(RT EXPR) |
user |
指定した名前が、現在の認証されたユーザーのプリンシパル名に存在するかどうかをチェックします。 (RT EXPR) |
指定した値が存在する場合にのみ、指定した属性に応じて、現在のリクエストをチェックし、このタグのネストされたボディ・コンテンツを評価します。property
属性を指定しない場合、このタグ1つに対していずれか1つの属性のみを指定できます。property
属性を指定する場合は、name属性も必要です。
属性名 | 説明 |
---|---|
Cookie |
指定した名前のCookieが存在するかどうかをチェックします。 (RT EXPR) |
header |
指定した名前のHTTPヘッダーが存在するかどうかをチェックします。名前の一致では、大文字と小文字の区別はありません。 (RT EXPR) |
name |
指定した名前のJSP Beanが、任意のスコープ内に存在するかどうかをチェックします。 (RT EXPR) |
parameter |
パラメータ値が長さゼロの文字列である場合も含め、指定したリクエスト・パラメータがこのリクエストに少なくとも1つ存在するかどうかをチェックします。 (RT EXPR) |
property |
(RT EXPR) |
role |
現在の認証されたユーザー(存在する場合)が、指定したセキュリティ・ロールのいずれかと関連付けられているかどうかをチェックします。複数のロールをチェックする場合は、カンマ区切りのリストを使用してください。例: (RT EXPR) |
scope |
(RT EXPR) |
user |
指定した名前が、現在の認証されたユーザーのプリンシパル名に存在するかどうかをチェックします。 (RT EXPR) |
このタグの属性で指定したハイパーリンクへのHttpServletResponse.sendRedirect()
コールを実行します。Cookieがない場合にセッション状態を保持するため、URLリライティングが自動的に適用されます。
このリダイレクトのベースURLは、指定を行う次の属性に基づいて求められます(どれか1つを指定する必要があります)。
ActionForward
の名前としてこの属性の値を使用し、そこで検出されるアプリケーション相対URIまたはコンテキスト相対URIを使用します。
通常、前述の属性のいずれかを使用して指定したリダイレクトは、変更されません(URLリライティングが必要な場合以外)。ただし、動的に定義した1つ以上の問合せパラメータをハイパーリンクに追加する方法が2つあります。paramId
属性(と値を選択するための関連する属性)を含む1つのパラメータを指定する方法と、1つ以上のパラメータIDと対応する値を含むjava.util.Map
Beanを選択するためのname
属性(とオプションのproperty
属性)を指定する方法です。
1つのパラメータを指定する場合は、paramId
属性を使用して、送信するリクエスト・パラメータの名前を定義します。対応する値を指定するには、次のいずれかの方法を使用します。
paramName
属性のみの指定: 名前付きJSP Bean(オプションでparamScope
属性の値により範囲指定)は、文字列に変換できる値を識別する必要があります。
paramName
属性とparamProperty
属性の指定: 指定されるプロパティgetterメソッドは、文字列に変換できる値を選択するために、paramName
属性(とオプションのparamScope
属性)で識別されるJSP Beanでコールされます。
ハイパーリンクに追加するすべてのリクエスト・パラメータを含むjava.util.Map
を指定する場合は、次のいずれかの方法を使用します。
name
属性のみの指定: 名前付きJSP Bean(オプションでscope
属性の値により範囲指定)は、パラメータを含むjava.util.Map
を識別する必要があります。
name
属性とproperty
属性の指定: 指定されるプロパティgetterメソッドは、パラメータを含むjava.util.Map
を返すために、name
属性(とオプションのscope
属性)で識別されるBeanでコールされます。
Map
が処理されると、キーは、ハイパーリンクに追加される問合せパラメータの名前であるとみなされます。各キーに関連付けられている値は、パラメータ値を表す文字列または文字列配列のいずれかになります。文字列配列が指定された場合、同じ問合せパラメータ名で複数の値が作成されます。
属性名 | 説明 |
---|---|
anchor |
生成されるハイパーリンクにオプションとして追加するanchorタグ(#xxx)。#文字は使用せずにこの値を指定してください。 (RT EXPR) |
forward |
このリダイレクト先の実際のコンテンツ相対URIを含むグローバル (RT EXPR) |
href |
このリダイレクトによるコントロールのフォワード先となるURL。このURLは、タグの記述どおりに、問合せパラメータのインクルードによって動的に変更される場合があります。 (RT EXPR) |
name |
問合せパラメータを表す (RT EXPR) |
page |
アクティブ化された場合に、このハイパーリンクによるコントロールのフォワード先となる(スラッシュで始まる)コンテキスト相対パス。このハイパーリンクは、タグの記述どおりに、問合せパラメータのインクルードによって動的に変更される場合があります。 (RT EXPR) |
paramId |
生成されるハイパーリンクに動的に追加されるリクエスト・パラメータの名前。対応する値は、 (RT EXPR) |
paramName |
(RT EXPR) |
paramProperty |
(RT EXPR) |
paramScope |
(RT EXPR) |
property |
(RT EXPR) |
scope |
(RT EXPR) |
transaction |
このリダイレクトで生成されるURLに現在のトランザクションの制御トークンをインクルードする場合は、 (RT EXPR) |
Copyright (c) 2000-2002, Apache Software Foundation
JDeveloperのStrutsカスタム・タグ・ライブラリについて
リファレンス: Strutsタグ・ライブラリ
Copyright © 1997, 2007, Oracle. All rights reserved.