<jsp:useBean>  

<jsp:useBean> アクションは、Java ビーンを JSP スコープの 1 つの名前と関連付け、それをスクリプト変数として利用できるようにします。指定されたスコープで、指定された名前を使用してビーンの検索が最初に試みられます。ビーンが見つからない場合、指定されたクラスの新しいインスタンスが作成されます。

省略可能な属性のうち、class または type の少なくとも 1 つを指定する必要があります。両方を指定した場合、classtype に割り当て可能である必要があります。beanName 属性は、type 属性と組み合わせる必要があり、class 属性に対しては有効ではありません。

このアクションは次の手順で処理されます。

  1. id および scope 属性値に基づくオブジェクトの検索が試みられます。

  2. 指定された type または class の指定された id を使用して、スクリプト言語変数が定義されます。

  3. オブジェクトが見つかった場合、見つかったオブジェクトへの参照で変数の値が初期化され、指定された type にそれがキャストされます。これでアクションの処理が完了します。アクション要素に空でない本文がある場合は、無視されます。

  4. 指定されたスコープにオブジェクトがなく、class または beanName が指定されない場合、InstantiationException がスローされます。これでアクションの処理が完了します。

  5. 指定されたスコープでオブジェクトが見つからず、class 属性がパラメータのないパブリックコンストラクタで非抽象クラスを指定する場合、そのクラスの新しいインスタンスが作成され、スクリプト変数および指定されたスコープの指定された名前と関連付けられます。この後に、手順 7 が実行されます。

    オブジェクトが見つからず、指定されたクラスで要件を満たすことができない場合、InstantiationException がスローされます。これでアクションの処理が完了します。

  6. 指定されたスコープでオブジェクトが見つからず、beanName 属性が指定されている場合、JSP 実装クラスのインスタンスの ClassLoaderbeanName をパラメータとして、java.beans.Beans クラスの instantiate() メソッドが呼び出されます。メソッドが成功する場合、新しいオブジェクト参照は、スクリプト変数と指定されたスコープの指定された名前と関連付けられます。この後に、手順 7 が実行されます。

  7. アクション要素に空でない本文がある場合、本文は処理されます。スクリプト変数は初期化され、本文のスコープ内で利用できるようになります。本文のテキストは他の場合と同様に処理されます。テンプレートテキストがある場合は、応答に渡されます。スクリプトレットとアクションタグが評価されます。

    空でない本文は、通常は作成されたインスタンスの初期化を完了するために使用されます。このような場合、通常本文には <jsp:setProperty> アクションとスクリプトレットが含まれます。これにより、アクションの処理が完了します。

例 :

<jsp:useBean id="clock" class="java.util.Date" />
beanName String
要求時間値の受け入れ :可

省略可能。java.beans パッケージの Beans クラスの instantiate() メソッドで期待されるビーンの名前。

class String
要求時間値の受け入れ :不可

省略可能。ビーンの完全修飾クラス名。

id String
要求時間値の受け入れ :不可

必須。指定されたスコープでビーンに割り当てる名前と、スクリプト変数の名前。

scope String
要求時間値の受け入れ :不可

省略可能。ビーンのスコープ。pagerequestsession、または application のいずれか 1 つ。初期設定値は page です。

type String
要求時間値の受け入れ :不可

省略可能。ビーンの完全修飾タイプ名 (ビーンのクラスによって実装されたスーパークラスまたはインターフェイス)。