Strutsフレームワーク
ようこそ
トップページ
キックスタートFAQ
ユーザガイド
リソース
私たちは誰でしょう
ダウンロード
バイナリ
ソースコード
はじめよう
インストール
リリースノート
APIドキュメント
メーリングリスト
バグ データベース
開発者ガイド
Beanタグ
HTMLタグ
Logicタグ
Templateタグ
Digester
Utilities
タグライブラリ ドキュメント
Beanタグ
HTMLタグ
Logicタグ
Templateタグ
現在の開発
インストール(ナイトリビルド)
リリースノート(ナイトリビルド)
APIドキュメント(ナイトリビルド)
ワークフローの提案
TODOリスト
Struts Bean タグ

このタグライブラリは、 bean と そのプロパティにアクセスするのと同様に、 変数およびページスコープ属性を記述することによりページの残りにアクセス可能な新しい (これらのアクセスに基づいた)bean を定義する際に有用なタグを含んでいます。 リクエストクッキー、ヘッダーおよびパラメータの値に基づいた新しい bean を作成する便利なメカニズムもまた提供されます。

このタグライブラリの多くのタグは、それらが不正確に利用された場合、 実行時に JspException をスローします (タグの属性を誤った組み合わせで指定した場合など)。 JSPは、<%@ page %>指示の中で "error page"を宣言することができます。 その問題を引き起こした実際の例外を処理したい場合は、 キー org.apache.struts.action.EXCEPTION の下のリクエスト属性としてエラーページに渡されます。

このページを Struts Documentation Application (またはオンラインの http://jakarta.apache.org/struts) から見ているのであれば、 Bean タグ デベロッパーズ ガイド の中でこれらのタグの使い方についてさらに知ることができます。

Tag NameDescription
cookie指定したリクエストクッキーの値に基づいて変数を定義します。
define指定した bean プロパティの値に基づいて変数を定義します。
header指定したリクエストヘッダの値に基づいて変数を定義します。
include 動的なアプリケーションリクエストから応答をロードして bean として利用可能にします。
message応答となる国際化されたメッセージ文字列を表現します。
page 指定したアイテムをbeanとしてページコンテキストから取り出します。
parameter 指定したリクエストパラメータの値に基づいて変数を定義します。
resource Web アプリケーションのリソースをロードして bean として利用可能にします。
size Collection または Map の要素数を含む bean を定義します。
struts 指定したStruts内部コンフィグレーション オブジェクトを bean として取り出します。
write 指定した bean プロパティの値を現在の JspWriter として表現します。
cookie - 指定したリクエストクッキーの値に基づいて変数を定義します。

指定したリクエストクッキー (一つまたは複数の値、multiple属性に依存) の値を取り出し、結果をCookie型 (multipleが指定されていない場合) または、Cookie[]型 (multipleを指定した場合) のページスコープ属性として定義します。

指定した名前のクッキーが無く、デフォルト値が指定されていない場合、 リクエスト時に例外がスローされます。

Attribute NameDescription
id

指定したリクエストクッキーの値として利用可能となる変数 (かつ、関連するページスコープ属性) の名前を指定します。

[Required] [RT Expr]
multiple

この属性に合う任意の値を指定した場合、一致するすべてのクッキーは Cookie[]型のbeanへ蓄積、格納されます。 指定されない場合は、指定したクッキーに合う最初の値が Cookie型の値として取り出されます。

[RT Expr]
name

(一つまたは複数の)値が取り出されるリクエストクッキーの名前を指定します。

[Required] [RT Expr]
value

指定した名前を持つクッキーがこのリクエストに含まれていなかった場合に戻すデフォルトのクッキー値。

[RT Expr]
define - 指定した bean プロパティの値に基づいて変数を定義します。

指定した bean プロパティの値を取り出し、現在のページの残りにアクセス可能な、 (toScopeプロパティで指定したスコープ内での)属性として定義します。 戻されるプロパティ値はJavaのプリミティブ型でなければ型変換されず、 適切なラッパクラスでラップされます。 (例えば、int は Java.lang.Integer でラップされます)

"value" 属性を指定した場合、取り出される bean は、 java.lang.String 型で、指定した値で初期化されます。

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

<bean:define> タグ は、 <jsp:useBean> との違いがいくつかあります:

  • 指定した識別子で bean を無条件に 作成(または置換)します。
  • 別の bean のプロパティ ゲッター が戻す値によって bean を作成できます。 (ネストされて(かつ、または) インデックス付きのプロパティ名で参照されるプロパティを含む)
  • value属性で指定した リテラル 文字列 (または実行時式の結果) を含む bean を作成できます。
  • <jsp:setProperty> タグのように ネストされた内容はサポートされません。 bean が実際に作成された場合にのみ実行されます。

使い方の注意 - JSP 1.1 仕様の中に制限事項があります。 単一のJSPページの中で、id属性に同じ値を使用することは許可されていません。 そのため、<bean:define> を 単一ページ内で2回以上同じ bean 名で使用することはできません。

これらの違いやJSPページにbeanを導入する代替アプローチについての詳しい情報は、 Bean デベロッパーズ ガイド の bean 作成 セクションを参照してください。

Attribute NameDescription
id

指定したプロパティの値と共に利用可能となる変数(と、関連付けされたページスコープ属性)の名前を指定します。

[Required] [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 - 指定したリクエストヘッダの値に基づいて変数を定義します。

指定したリクエストヘッダ(1つまたは複数の値、multiple属性に依存) を取り出し 結果をString型(multipleが指定されていない場合)、 または String[]型(multipleを指定した場合) のページスコープ属性として、定義します。

指定した名前でヘッダを識別できず、かつデフォルト値が指定されない場合は、 リクエスト時に例外がスローされます。

Attribute NameDescription
id

指定したリクエストヘッダの値と共に有効となる変数(と、 関連するページスコープ属性)の名前を指定します。

[Required] [RT Expr]
multiple

この属性に合う任意の値が指定された場合、 HttpServletRequest.getHeaders() を呼び出し String[]型の bean として結果を定義します。 そうでなければ、HttpServletRequest.getHeader() が呼ばれ、String型の bean として結果の定義が行われます。

[RT Expr]
name

(一つまたは複数の)値が取り出されるリクエストヘッダの名前を指定します。

[Required] [RT Expr]
value

指定した名前を持つヘッダがこのリクエストに含まれていなかった場合に戻すデフォルトのヘッダ値。

[RT Expr]
include - 動的なアプリケーションリクエストから応答をロードして bean として利用可能にします。

指定したアプリケーション コンポーネント (または外部のURL) への内部ディスパッチを行います。 そして、リクエストから String 型の bean として利用可能なレスポンスデータを作成します。 このタグは、標準の <jsp:include> タグに似た機能を持ちますが、 レスポンスデータがアウトプットストリームではなく、ページスコープ属性に格納されます。 現在のリクエストがセッションの一部であれば、include のために生成されたリクエストは セッション識別子も含みます(そして同じセッションの一部となります)。

指定したアプリケーションコンポーネントのアクセスに使われるURLは、 次の属性を基に求められます。 (どれか一つを必ず指定してください):

  • forward - グローバル ActionForwardからこの値を検索し、 見つかった結果をコンテキスト相対URIとして使用します。
  • href - この属性の値を変更せずに使用します。 (外部アプリケーションのリソースにリンクするかもしれません)。 セッション識別子は含まれません
  • page - この属性の値を対象リソースへの コンテキスト相対URI として使用します。
Attribute NameDescription
anchor

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

[RT Expr]
forward

インクルードされるべき実際のコンテキスト相対URIを含んでいる、 グローバル ActionForward の論理名。

[RT Expr]
href

インクルードされるべきリソースの絶対URL("http:" のような適切なプロトコル プレフィックスを含む)。 なぜなら、このURLは現在の Web アプリケーションの外部となるので、 セッション識別子はリクエストに含まれないでしょう。

[RT Expr]
id

指定した Web アプリケーション リソースの値共に有効となる変数 (と関連するページスコープ属性)の名前を指定します。

[Required] [RT Expr]
name

ディスパッチされる Web アプリケーションのリクエストのコンテキスト相対名("/"で始まる)。 そしてそのレスポンスデータは bean として利用可能となります。 非推奨 - 代わりに "page" 属性を使用してください。

[RT Expr]
page

インクルードされるべき Web アプリケーション リソース のコンテキスト相対URI ("/"で始まる)。

[RT Expr]
transaction

現在のトランザクション コントロール トークンを、 このインクルードのために生成した URL を含ませたい場合は、 trueをセットする。

[RT Expr]
message - 応答となる国際化されたメッセージ文字列を表現します。

指定したメッセージキーを使用して、 指定のロケールの国際化されたメッセージを取り出し、 アウトプットストリームに書き出します。 5つ迄のパラメータ置換("{0}" のような)が指定されます。

Attribute NameDescription
arg0

最初のパラメータの置換値 (もしあれば)

[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

要求されたメッセージ (メッセージ リソースの中に対応する値を持っている) のメッセージキー。

[Required] [RT Expr]
locale

現在選択されている Locale オブジェクトが格納される セッション スコープ bean の名前。 指定されない場合は、デフォルトの名前(Action.LOCALE_KEY の定数文字列の値)が使用されます。

[RT Expr]
page - 指定したアイテムをbeanとしてページコンテキストから取り出します。

指定したアイテムを このページのページコンテキストから取り出し、 現在のページの残りにアクセス可能なページスコープ属性の変数として定義します。

指定した コンフィグレーションオブジェクトの取り出し中に問題が発生した場合は、 リクエスト時に例外がスローされます。

Attribute NameDescription
id

指定したコンテキスト プロパティの値として利用可能となる変数(かつ、 関連するページスコープ属性)の名前を指定します。

[Required] [RT Expr]
property

ページ コンテキストから取り出され表されるべきプロパティの名前。 applicationconfigrequestresponse、 または session のうちの1つ。

[Required] [RT Expr]
parameter - 指定したリクエストパラメータの値に基づいて変数を定義します。

指定したリクエストパラメータ (1つまたは複数の値、multiple属性に依存) を取り出し、 結果をString型(multipleが指定されていない場合)、 または String[]型(multipleを指定した場合) のページスコープ属性として、定義します。

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

Attribute NameDescription
id

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

[Required] [RT Expr]
multiple

この属性に合う任意の値が指定される場合、 HttpServletRequest.getParameterValues() を呼び出し String[]型の bean として結果を定義します。 そうでなければ、HttpServletRequest.getParameterValue() が呼ばれ、String型の bean として結果の定義が行われます。

[RT Expr]
name

(一つまたは複数の)値が取り出されるリクエストパラメータの名前を指定します。

[Required] [RT Expr]
value

指定した名前を持つパラメータがこのリクエストに含まれていなかった場合に戻す デフォルトのパラメータ値。

[RT Expr]
resource - Web アプリケーションのリソースをロードして bean として利用可能にします。

指定した Web アプリケーション リソースの値を取り出し、 InputStream または String のどちらか一方として利用可能な input 属性に依存する値を作成します。

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

Attribute NameDescription
id

指定した Web アプリケーション リソースの値として利用可能となる変数 (かつ、関連するページスコープ属性)の名前を指定します。

[Required] [RT Expr]
input

この属性に合う任意の値が指定された場合、リソースは InputStream として利用可能になります。 この属性が指定されない場合、リソースは String として利用可能になります。

[RT Expr]
name

ロードされ利用可能となるべき Web アプリケーション リソース の Context-relative な("/"で始まる)名前 。

[Required] [RT Expr]
size - Collection または Map の要素数を含む bean を定義します。

配列、コレクション、または Map への参照を与え、java.lang.Integer 型の 新しい bean を作成します。 その値は、コレクションの要素数です。 カウントされるコレクションを指定するには、次の方法の一つで行います:

  • 実行時式とする場合は、collection 属性の値として指定します。
  • JSP bean とする場合は、name 属性によって指定します。
  • プロパティとする場合は、bean 属性で指定した JSP bean の property 属性によって指定します。
Attribute NameDescription
collection

配列、Collection、または Map として評価される実行時式。

[RT Expr]
id

カウントされるコレクションのサイズを含むために作成されるページスコープ JSP bean (java.lang.Integer 型) の名前。

[Required] [RT Expr]
name

(propertyが指定されない場合に) カウントされるコレクションを含んでいるか、 (propertyを指定した場合に)カウントされるコレクションを 戻すためにプロパティゲッターが呼ばれる、(オプションで scope 属性でスコープが制限された) JSP bean の名前 。

[RT Expr]
property

name 属性によって指定した bean の ゲッター メソッドがカウントされるコレクションを戻す bean の プロパティ名。

[RT Expr]
scope

name 属性によって指定した JSP bean を探索する bean スコープ範囲。 指定されない場合は、利用可能なスコープは昇順に検索されます。

[RT Expr]
struts - 指定したStruts内部コンフィグレーション オブジェクトを bean として取り出します。

指定した Struts 内部コンフィグレーションオブジェクトを取り出し、 現在のページの残りにアクセスするためのページスコープ属性の変数として定義します。 取り出すコンフィグレーションオブジェクトを選択するために、 formBeanforward、および mapping 属性のうち一つを必ず指定してください。

指定した コンフィグレーションオブジェクトの取り出し中に問題が発生した場合は、 リクエスト時に例外がスローされます。

Attribute NameDescription
id

指定した Struts 内部コンフィグレーション オブジェクトの値と共に有効となる変数(と、関連するページスコープ属性)の名前を指定します。

[Required] [RT Expr]
formBean

取り出すべき Struts ActionFormBean 定義 オブジェクト の名前を指定します。

[RT Expr]
forward

取り出すべき グローバル Struts ActionForward 定義 オブジェクト の名前を指定します。

[RT Expr]
mapping

取り出すべき Struts ActionMapping 定義 オブジェクト に一致するパスを指定します。

[RT Expr]
write - 指定した bean プロパティの値を現在の JspWriter として表現します。

指定した bean プロパティの値を取り出し、Stringとして現在の JspWriterに与えます。 プロパティ値のクラス用に構成されている PropertyEditor がある場合、 getAsText() メソッドが呼ばれます。 それ以外の場合は、通常 toString()での変換が適用されます。

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

Attribute NameDescription
filter

この属性がtrueにセットされる場合、 表現されたプロパティ値は HTML内でセンシティブな文字のためにフィルターされます。 そしてこのような全ての文字は、等価な文字で置き換えられます。 デフォルトでは、フィルタリングが行われます。 無効にするためには、この属性に明示的に false をセットする必要があります。

[RT Expr]
ignore

この属性がtrueにセットされ、namescope属性で指定した bean が存在しない場合、 なにもせずにリターンします。 デフォルト値は false (このタグ ライブラリの中のほかのタグと矛盾しないように実行時例外がスローされます)。

[RT Expr]
name

property (指定がある場合) によって指定した値を取り出すために、プロパティがアクセスされる bean の属性名を指定します。 property が指定されない場合、この bean 自身の値が表現されます。

[Required] [RT Expr]
property

name によって指定した bean 上でアクセスされる プロパティの名前を指定します。 この値はシンプル、インデックス付き、 またはネストされたプロパティ参照式になります。 指定されない場合は、name によって識別された bean は それ自身を表現します。 指定したプロパティがヌルを戻す場合、何も表現されません。

[RT Expr]
scope

name によって指定した bean を取り出すために検索されるスコープを指定します。 指定されない場合、PageContext.findAttribute() によって適用されたデフォルトのルールが適用されます。

[RT Expr]

[訳注: これは土橋 昇司が翻訳しました。日本語訳に対するコメントがあれば、report@jajakarta.orgに送って下さい。]
Copyright (c) 2000-2002, Apache Software Foundation