29.2. バイジェクション用アノテーション


次の 2 つのアノテーションはバイジェクションを制御します。 これらの属性はコンポーネントインスタンス変数またはプロパティのアクセサメソッドで発生します。
@In
@In
Copy to Clipboard Toggle word wrap
コンポーネントの属性が各コンポーネント呼び出しの開始時にコンテキスト変数からインジェクトされることを指定します。 コンテキスト変数が null の場合、 例外が送出されます。
@In(required=false)
Copy to Clipboard Toggle word wrap
コンポーネントの属性が各コンポーネント呼び出しの開始時にコンテキスト変数からインジェクトされることを指定します。 コンテキスト変数は null でも構いません。
@In(create=true)
Copy to Clipboard Toggle word wrap
コンポーネントの属性がコンポーネント呼び出しの開始時にコンテキスト変数からインジェクトされることを指定します。コンテキスト変数が null の場合、コンポーネントのインスタンスが Seam によって作成されます。
@In(value="contextVariableName")
Copy to Clipboard Toggle word wrap
アノテーションを付けられたインスタンス変数名を使用せず、 コンテキスト変数名を明示的に指定します。
@In(value="#{customer.addresses['shipping']}")
Copy to Clipboard Toggle word wrap
各コンポーネント呼び出しの開始時に JSF EL 式を評価することで、コンポーネントの属性がインジェクトされることを指定します。
  • value − コンテキスト変数名を指定します。デフォルトはコンポーネントの属性名です。あるいは #{...} で囲まれた JSF EL 式を指定します。
  • create − コンテキスト変数がすべてのコンテキストで未定義 (null) の場合、 Seam がコンテキスト変数と同じ名前のコンポーネントをインスタンス化するよう指定します。デフォルトは false です。
  • required − コンテキスト変数がすべてのコンテキストで未定義の場合、 Seam が例外を送出するよう指定します。
@Out
@Out
Copy to Clipboard Toggle word wrap
Seam コンポーネントであるコンポーネントの属性が呼び出しの終わりでそのコンテキスト変数にアウトジェクトされることを指定します。 属性が null の場合、 例外が送出されます。
@Out(required=false)
Copy to Clipboard Toggle word wrap
Seam コンポーネントであるコンポーネント属性が呼び出しの終わりでそのコンテキスト変数にアウトジェクトされることを指定します。 属性は null でも構いません。
@Out(scope=ScopeType.SESSION)
Copy to Clipboard Toggle word wrap
Seam コンポーネントタイプ ではない コンポーネントの属性が呼び出しの終わりで特定スコープにアウトジェクトされることを指定します。
別の方法として、明示的にスコープが指定されていない場合、@Out 属性を持つコンポーネントのスコープ (またはコンポーネントがステートレスであれば EVENT スコープ) が使用されます。
@Out(value="contextVariableName")
Copy to Clipboard Toggle word wrap
アノテーションを付けられたインスタンス変数名を使用せず、 コンテキスト変数名を明示的に指定します。
  • value − コンテキスト変数名を指定します。デフォルトはコンポーネントの属性名です。
  • required − アウトジェクトするときにコンポーネントの属性が null の場合、 Seam が例外を送出するよう指定します。
これらのアノテーションは通常次のように共に利用します。
@In(create=true) 
@Out private User currentUser;
Copy to Clipboard Toggle word wrap
Seam コンポーネントがインジェクトされる他のクラスのインスタンスのライフサイクルを管理する場合、 次のアノテーションは マネージャコンポーネント パターンをサポートします。 コンポーネントの getter メソッドに付与されます。
@Unwrap
@Unwrap
Copy to Clipboard Toggle word wrap
このアノテーションが付いている getter メソッドにより返されるオブジェクトがコンポーネントの代わりにインジェクトされることを指定します。
次のアノテーションは ファクトリコンポーネント パターンをサポートします。 この場合 Seam コンポーネントがコンテキスト変数の値の初期化を行います。 特に非 Faces 要求に対する応答のレンダリングに必要なあらゆる状態の初期化に便利です。 コンポーネントメソッドで指定されます。
@Factory
@Factory("processInstance") 
public void createProcessInstance() { ... }
Copy to Clipboard Toggle word wrap
コンテキスト変数に値がない場合に、 このコンポーネントのメソッドが指定コンテキスト変数の値の初期化に使用されることを指定します。 このスタイルは void を返すメソッドと併用します。
@Factory("processInstance", scope=CONVERSATION) 
public ProcessInstance createProcessInstance() { ... }
Copy to Clipboard Toggle word wrap
コンテキスト変数に値がない場合、 指定コンテキスト変数の値の初期化にはこのメソッドで返される値を使用することを指定します。 このスタイルは値を返すメソッドと併用します。 明示的にスコープが指定されていない場合、 @Factory メソッドを持つコンポーネントのスコープが使用されます (そのコンポーネントがステートレスではない場合 EVENT コンテキストが使用されます)。
  • value − コンテキスト変数の名前を指定します。メソッドが getter メソッドの場合、 JavaBeans のプロパティ名がデフォルトになります。
  • scope − Seam が戻り値をバインドするスコープを指定します。値を返すファクトリメソッドの場合にのみ意味があります。
  • autoCreate@Increate=true を指定していない場合でも、 変数が要求されたときは常にこのファクトリメソッドが自動的に呼び出されるよう指定します。
次は Log をインジェクトできるようにするアノテーションです。
@Logger
@Logger("categoryName")
Copy to Clipboard Toggle word wrap
コンポーネントフィールドに org.jboss.seam.log.Log のインスタンスをインジェクトするよう指定します。 エンティティ Bean の場合、 このフィールドは static として宣言されなければなりません。
  • value − ログカテゴリの名前を指定します。デフォルトはコンポーネントのクラス名です。
最後のアノテーションでは要求パラメータ値をインジェクトできます。
@RequestParameter
@RequestParameter("parameterName")
Copy to Clipboard Toggle word wrap
コンポーネントの属性に要求パラメータ値をインジェクトするよう指定します。 基本的なタイプの対話は自動的に行われます。
  • value − 要求パラメータの名前を指定します。デフォルトはコンポーネントの属性名です。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat