Struts Beanタグ

これは、Struts Beanタグ・ライブラリの開発者ガイドです。このセクションには、Apache Software Foundation(http://www.apache.org/)およびそれ以外のサード・パーティによって作成されたドキュメントが含まれます。

このタグ・ライブラリには、Beanとそのプロパティへのアクセスに役立つタグが含まれます。また、(これらのアクセスに基づいて)スクリプト変数とページ・スコープ属性を介してページの他の部分にアクセスできる新しいBeanの定義に役立つタグも含まれます。リクエストCookie、ヘッダーおよびパラメータの値に基づいて新しいBeanを作成する便利なメカニズムも用意されています。

このタグ・ライブラリ内のタグの多くは、誤って使用すると(無効な組合せのタグ属性を指定した場合など)、実行時にJspExceptionをスローします。JSPでは、<%@ page %>ディレクティブでエラー・ページを宣言できます。問題を引き起こした実際の例外を処理する場合、それはキーorg.apache.struts.action.EXCEPTIONのリクエスト属性としてエラー・ページに渡されます。

タグ名説明
cookie 指定したリクエストCookieの値に基づいてスクリプト変数を定義します。
define 指定したBeanプロパティの値に基づいてスクリプト変数を定義します。
header 指定したリクエスト・ヘッダーの値に基づいてスクリプト変数を定義します。
include 動的アプリケーション・リクエストからレスポンスをロードし、Beanとして使用可能にします。
message 国際化されたメッセージ文字列をレスポンスにレンダリングします。
page 指定した項目をページ・コンテキストからBeanとして公開します。
parameter 指定したリクエスト・パラメータの値に基づいてスクリプト変数を定義します。
resource Webアプリケーション・リソースをロードし、Beanとして使用可能にします。
size CollectionまたはMap内の要素数を含むBeanを定義します。
struts 名前付きStruts内部構成オブジェクトをBeanとして公開します。
write 指定したBeanプロパティの値を現在のJspWriterにレンダリングします。
cookie:  指定したリクエストCookieの値に基づいてスクリプト変数を定義します。

指定したリクエストCookieの値を(multiple属性に応じて単一の値または複数の値として)取得し、その結果をCookie型(multipleを指定しない場合)またはCookie[]型(multipleを指定する場合)のページ・スコープ属性として定義します。

指定した名前のCookieが存在せず、デフォルト値の指定もない場合は、リクエスト時例外がスローされます。

属性名説明
id

指定したリクエストCookieの値として使用可能になるスクリプト変数(および関連するページ・スコープ属性)の名前を指定します。

(必須) (RT EXPR)
multiple

この属性に任意の値を指定すると、一致するすべてのCookieがCookie[]型のBeanに蓄積され、格納されます。指定しない場合、指定したCookieの最初の値がCookie型の値として取得されます。

(RT EXPR)
name

取得対象となる値を含むリクエストCookieの名前を指定します。

(必須) (RT EXPR)
value

指定した名前のCookieがこのリクエストに含まれていない場合に返されるデフォルトのCookieの値。

(RT EXPR)
define:  指定したBeanプロパティの値に基づいてスクリプト変数を定義します。

新しい属性を(toScopeプロパティを指定する場合はそのスコープ内に)作成し、対応するスクリプト変数を作成します。両方とも、id属性の値により名前を指定します。この新しい属性(およびスクリプト変数)に設定する値は、次のアプローチのいずれか1つを使用して指定します(複数のアプローチを使用すると、JspExceptionがスローされます)。

  • name属性(およびオプションのproperty属性とscope属性)を指定: 作成される属性とスクリプト変数は、Javaプリミティブ型でないかぎり、取得されるJavaBeansプロパティの型になります。プリミティブ型の場合は、適切なラッパー・クラスにラップされます(すなわち、intはjava.lang.Integerでラップされます)。
  • value属性を指定: 作成される属性とスクリプト変数は、この属性の値に設定されたjava.lang.String型になります。
  • ネストされた本体コンテンツを指定: 作成される属性とスクリプト変数は、ネストされた本体コンテンツの値に設定されたjava.lang.String型になります。

指定したBeanプロパティの取得中に問題が発生した場合は、リクエスト時例外がスローされます。

<bean:define>タグには、次のように<jsp:useBean>タグと異なる点がいくつかあります。

  • 指定した識別子で無条件にBeanを作成(または置換)します。
  • 別のBean(ネストされたプロパティ名または索引付きプロパティ名、あるいはその両方で参照されるプロパティを含むBean)のプロパティgetterにより返される値を使用してBeanを作成できます。
  • value属性で指定したリテラル文字列(またはランタイム式の結果)を含むBeanを作成できます。
  • <jsp:setProperty>タグなどの)ネストされたコンテンツはサポートされません。Beanが実際に作成された場合にのみ実行されます。

使用方法: JSP 1.1仕様には、単一のJSPページ内でid属性に同じ値を複数回使用することはできないという制限があります。そのため、単一のページ内で<bean:define>を複数回同じBean名で使用することはできません。

Beanを作成する様々な方法と、BeanをJSPページに導入する別のアプローチの詳細は、ApacheグループのWebサイト(http://jakarta.apache.org/struts/api/org/apache/struts/taglib/bean/package-summary.html#doc.Creation)にあるBean開発者ガイドの関連セクションを参照してください。

属性名説明
id

指定したプロパティの値として使用可能になるスクリプト変数(および関連するページ・スコープ属性)の名前を指定します。

(必須) (RT EXPR)
name

新しいページ・スコープ属性を定義するためにアクセスされるプロパティを含むBeanの属性名(propertyを指定する場合)、または、このタグで作成される新しい参照によって複製されるBeanの属性名(propertyを指定しない場合)を指定します。value属性またはネストされた本体コンテンツを指定しない場合、この属性は必須となります。

(RT EXPR)
property

name属性で指定したBean上でアクセスされるプロパティの名前を指定します。この値には、単純なプロパティ、索引付きプロパティ、またはネストされたプロパティの参照式を使用できます。指定しない場合、nameにより識別されるBeanには、idにより識別される新しい参照が与えられます。

(RT EXPR)
scope

nameで指定したBeanを取得するために検索する変数のスコープを指定します。指定しない場合、PageContext.findAttribute()によるデフォルトの規則が適用されます。

(RT EXPR)
toScope

新しく定義するBeanの作成先となる変数のスコープを指定します。指定しない場合、Beanはpageスコープで作成されます。

(RT EXPR)
type

id属性として公開される値の完全修飾クラス名を指定します。

[ java.lang.String(value属性を指定する場合)またはjava.lang.Object(それ以外の場合) ] (RT EXPR)
value

公開するBeanに設定するjava.lang.String値。name属性またはネストされた本体コンテンツを指定しない場合、この属性は必須となります。

(RT EXPR)
header:  指定したリクエスト・ヘッダーの値に基づいてスクリプト変数を定義します。

指定したリクエスト・ヘッダーの値を(multiple属性に応じて単一の値または複数の値として)取得し、その結果をString型(multipleを指定しない場合)またはString[]型(multipleを指定する場合)のページ・スコープ属性として定義します。

指定した名前のヘッダーが存在せず、デフォルト値の指定もない場合は、リクエスト時例外がスローされます。

属性名説明
id

指定したリクエスト・ヘッダーの値として使用可能になるスクリプト変数(および関連するページ・スコープ属性)の名前を指定します。

(必須) (RT EXPR)
multiple

この属性に任意の値を指定すると、HttpServletRequest.getHeaders()がコールされ、結果がString[]型のBeanとして定義されます。指定しない場合、HttpServletRequest.getHeader()がコールされ、結果がString型のBeanとして定義されます。

(RT EXPR)
name

取得対象となる1つ以上の値を含むリクエスト・ヘッダーの名前を指定します。

(必須) (RT EXPR)
value

指定した名前のヘッダーがこのリクエストに含まれていない場合に返されるデフォルトのヘッダーの値。

(RT EXPR)
include:  動的アプリケーション・リクエストからレスポンスをロードし、Beanとして使用可能にします。

指定したアプリケーション・コンポーネント(または外部URL)に対する内部ディスパッチを実行し、そのリクエストからのレスポンス・データをString型のBeanとして使用可能にします。このタグは、レスポンス・データを出力ストリームに書き込まずにページ・スコープ属性に格納する点以外は、標準の<jsp:include>タグとほぼ同じ機能を持ちます。現在のリクエストがセッションの一部の場合、includeのために生成されるリクエストにはセッション識別子も含まれます(そのため、同じセッションの一部になります)。

指定したアプリケーション・コンポーネントへのアクセスに使用されるURLは、指定を行う次の属性に基づいて求められます(どれか一つを指定する必要があります)。

  • forward: 検索対象のグローバルActionForwardの名前としてこの属性の値を使用し、そこで検出されるアプリケーション相対URIまたはコンテキスト相対URIを使用します。
  • href: この属性の値を変更せずに使用します(この場合、アプリケーション外部のリソースにリンクする可能性があるため、セッション識別子は含まれません)。
  • page: この属性の値を、目的のリソースに対するアプリケーション相対URIとして使用します。
属性名説明
anchor

生成されるハイパーリンクにオプションとして追加するanchorタグ(#xxx)。#文字は使用せずにこの値を指定してください。

(RT EXPR)
forward

インクルードするリソースの実際のコンテンツ相対URIを含む、グローバルActionForwardの論理名。

(RT EXPR)
href

インクルードするリソースの絶対URL(「http:」のような適切なプロトコル接頭辞を含む)。このURLは、現在のWebアプリケーションの外部となる可能性があるため、リクエストにセッション識別子は含まれません

(RT EXPR)
id

指定したWebアプリケーション・リソースの値として使用可能になるスクリプト変数(および関連するページ・スコープ属性)の名前を指定します。

(必須) (RT EXPR)
name

ディスパッチされるWebアプリケーション・リソースの(スラッシュで始まる)アプリケーション相対名。そのレスポンス・データはBeanとして使用可能になります。非推奨: かわりにpage属性を使用してください。

(RT EXPR)
page

インクルードするWebアプリケーション・リソースの(スラッシュで始まる)アプリケーション相対URI。

(RT EXPR)
transaction

このincludeのために生成されるURLに現在のトランザクションの制御トークンを含める場合、trueに設定します。

(RT EXPR)
message:  国際化されたメッセージ文字列をレスポンスにレンダリングします。

指定したメッセージ・キーを使用して、指定したロケールの国際化されたメッセージを取得し、出力ストリームに書き込みます。パラメータ置換({0}など)を5つまで指定できます。

メッセージ・キーは、key属性を使用して直接指定するか、またはBeanから取得するようname属性とproperty属性を使用して間接的に指定します。

属性名説明
arg0

1番目のパラメータ置換値(オプション)。

(RT EXPR)
arg1

2番目のパラメータ置換値(オプション)。

(RT EXPR)
arg2

3番目のパラメータ置換値(オプション)。

(RT EXPR)
arg3

4番目のパラメータ置換値(オプション)。

(RT EXPR)
arg4

5番目のパラメータ置換値(オプション)。

(RT EXPR)
bundle

メッセージを含むMessageResourcesオブジェクトを格納するアプリケーション・スコープBeanの名前。

[Action.MESSAGES_KEY] (RT EXPR)
key

リクエストされたメッセージのメッセージ・キー。メッセージ・リソース内に対応する値が含まれています。指定しない場合、name属性およびproperty属性からキーが取得されます。

(RT EXPR)
locale

現在選択しているLocaleオブジェクトを格納するセッション・スコープBeanの名前。

[Action.LOCALE_KEY] (RT EXPR)
name

propertyで指定した値(指定する場合)を取得するためにアクセスされるプロパティを含むBeanの属性名を指定します。propertyを指定しない場合、このBean自体の値がメッセージ・リソース・キーとして使用されます。

(RT EXPR)
property

name属性で指定したBean上でアクセスされるプロパティの名前を指定します。この値には、単純なプロパティ、索引付きプロパティ、またはネストされたプロパティの参照式を使用できます。指定しない場合、nameにより識別されるBean自体の値がメッセージ・リソース・キーとして使用されます。

(RT EXPR)
scope

nameで指定したBeanを取得するために検索する変数のスコープを指定します。指定しない場合、PageContext.findAttribute()によるデフォルトの規則が適用されます。

(RT EXPR)
page:  指定した項目をページ・コンテキストからBeanとして公開します。

このページのページ・コンテキストから指定した項目の値を取得し、その値をスクリプト変数として、および現在のページの他の部分にアクセスできるページ・スコープ属性として定義します。

指定した構成オブジェクトの取得中に問題が発生した場合は、リクエスト時例外がスローされます。

属性名説明
id

指定したページ・コンテキスト・プロパティの値として使用可能になるスクリプト変数(および関連するページ・スコープ属性)の名前を指定します。

(必須) (RT EXPR)
property

取得および公開するページ・コンテキストのプロパティの名前。これは、applicationconfigrequestresponseまたはsessionのいずれかになります。

(必須) (RT EXPR)
parameter:  指定したリクエスト・パラメータの値に基づいてスクリプト変数を定義します。

指定したリクエスト・パラメータの値を(multiple属性に応じて単一の値または複数の値として)取得し、その結果をString型(multipleを指定しない場合)またはString[]型(multipleを指定する場合)のページ・スコープ属性として定義します。

指定した名前のリクエスト・パラメータが存在せず、デフォルト値の指定もない場合は、リクエスト時例外がスローされます。

属性名説明
id

指定したリクエスト・パラメータの値として使用可能になるスクリプト変数(および関連するページ・スコープ属性)の名前を指定します。

(必須) (RT EXPR)
multiple

この属性に任意の値を指定すると、ServletRequest.getParameterValues()がコールされ、結果がString[]型のBeanとして定義されます。指定しない場合、ServletRequest.getParameter()がコールされ、結果がString型のBeanとして定義されます。

(RT EXPR)
name

取得対象となる値を含むリクエスト・パラメータの名前を指定します。

(必須) (RT EXPR)
value

指定した名前のパラメータがこのリクエストに含まれていない場合に返される、デフォルトのパラメータの値。

(RT EXPR)
resource:  Webアプリケーション・リソースをロードし、Beanとして使用可能にします。

指定したWebアプリケーション・リソースの値を取得し、input属性の値に応じて、InputStreamまたはStringとして使用可能にします。

指定したリソースの取得中に問題が発生した場合は、リクエスト時例外がスローされます。

属性名説明
id

指定したWebアプリケーション・リソースの値として使用可能になるスクリプト変数(および関連するページ・スコープ属性)の名前を指定します。

(必須) (RT EXPR)
input

この属性に任意の値を指定すると、リソースはInputStreamとして使用可能になります。指定しない場合、リソースはStringとして使用可能になります。

(RT EXPR)
name

ロードするWebアプリケーション・リソースの(スラッシュで始まる)アプリケーション相対名。

(必須) (RT EXPR)
size:  CollectionまたはMap内の要素数を含むBeanを定義します。

配列、CollectionまたはMapを参照し、java.lang.Integer型の新しいBeanを作成します。この値は、そのコレクションの要素数です。次のいずれかの方法により、カウントされるコレクションを指定します。

  • collection属性の値で指定するランタイム式とする場合
  • name属性で指定するJSP Beanとする場合
  • bean属性で指定するJSP Beanの、property属性で指定するプロパティとする場合
属性名説明
collection

配列、CollectionまたはMapに対し評価を行うランタイム式。

(RT EXPR)
id

カウント対象の基礎となるコレクションのサイズを格納するために作成される、java.lang.Integer型のページ・スコープJSP Beanの名前。

(必須) (RT EXPR)
name

カウントされるコレクションを含む(オプションでscope属性によってスコープが制限される)JSP Beanの名前(propertyを指定しない場合)。または、カウントされるコレクションを返すためにコールされるプロパティgetterを含むJSP Beanの名前(propertyを指定する場合)。

(RT EXPR)
property

カウントされるコレクションをgetterメソッドによって返す、name属性で指定したBeanのプロパティの名前。

(RT EXPR)
scope

name属性で指定したJSP Beanを検索するための範囲となるBeanスコープ。指定しない場合、使用可能なスコープは昇順で検索されます。

(RT EXPR)
struts:  名前付きStruts内部構成オブジェクトをBeanとして公開します。

指定したStruts内部構成オブジェクトの値を取得し、その値をスクリプト変数として、および現在のページの他の部分にアクセスできるページ・スコープ属性として定義します。公開される構成オブジェクトを選択する場合は、formBean属性、forward属性またはmapping属性のどれか一つを指定する必要があります。

指定した構成オブジェクトの取得中に問題が発生した場合は、リクエスト時例外がスローされます。

属性名説明
formBean

公開されるStruts ActionFormBean定義オブジェクトの名前を指定します。

(RT EXPR)
forward

公開されるグローバルStruts ActionForward定義オブジェクトの名前を指定します。

(RT EXPR)
id

指定したStruts内部構成オブジェクトの値として使用可能になるスクリプト変数(および関連するページ・スコープ属性)の名前を指定します。

(必須) (RT EXPR)
mapping

公開されるStruts ActionMapping定義オブジェクトに一致したパスを指定します。

(RT EXPR)
write:  指定したBeanプロパティの値を現在のJspWriterにレンダリングします。

指定したBeanプロパティの値を取得し、次の方法で現在のJspWriterに文字列としてレンダリングします。

  • format属性が存在する場合、値はformat属性およびデフォルトのシステム・ロケールによる書式文字列に基づいて書式設定されます。
  • 値のデータ型の書式文字列がリソース内に存在する場合(format属性の説明を参照)、値はリソースの書式文字列に基づいて書式設定されます。リソース・バンドルおよびターゲット・ロケールは、bundle属性とlocale属性を使用して指定できます。何も指定しない場合は、デフォルトのリソース・バンドルおよび現在のユーザー・ロケールが使用されます。
  • プロパティ値のクラス用に構成されたプロパティ・エディタがある場合は、getAsText()メソッドがコールされます。
  • プロパティ・エディタがない場合は、通常のtoString()変換が適用されます。

指定したBeanプロパティの取得中に問題が発生した場合は、リクエスト時例外がスローされます。

属性名説明
bundle

メッセージを含むMessageResourcesオブジェクトを格納するアプリケーション・スコープBeanの名前。

[Action.MESSAGES_KEY] (RT EXPR)
filter

この属性をtrueに設定すると、レンダリングするプロパティ値は、HTMLで有効な文字となるようフィルタリングされ、このような文字は等価な文字で置換されます。

[true] (RT EXPR)
format

Beanまたはプロパティ値をStringに変換する際に使用する書式文字列を指定します。指定しない場合、対応するキーに従って、値のデータ型に対するデフォルトの書式文字列がメッセージ・リソース内で検索されます。

(RT EXPR)
formatKey

アプリケーション・リソース内で書式文字列を検索するためのキーを指定します。

(RT EXPR)
ignore

この属性をtrueに設定すると、name属性およびscope属性により指定したBeanが存在しない場合、何も書き込まれずに処理が終了します。この属性をfalseに設定すると、このタグ・ライブラリ内の他のタグに応じてランタイム例外がスローされます。

[false] (RT EXPR)
locale

現在選択しているLocaleオブジェクトを格納するセッション・スコープBeanの名前。

[Action.LOCALE_KEY] (RT EXPR)
name

propertyで指定した値(指定する場合)を取得するためにアクセスされるプロパティを含むBeanの属性名を指定します。propertyを指定しない場合、このBean自体の値がレンダリングされます。

(必須) (RT EXPR)
property

name属性で指定したBean上でアクセスされるプロパティの名前を指定します。この値には、単純なプロパティ、索引付きプロパティ、またはネストされたプロパティの参照式を使用できます。指定しない場合、nameにより識別されるBean自体がレンダリングされます。指定したプロパティがnullを返した場合、出力はレンダリングされません。

(RT EXPR)
scope

nameで指定したBeanを取得するために検索する変数のスコープを指定します。指定しない場合、PageContext.findAttribute()によるデフォルトの規則が適用されます。

(RT EXPR)

Copyright (c) 2000-2002, Apache Software Foundation