クラス VariableInfo
- java.lang.ObjectSE
-
- jakarta.servlet.jsp.tagext.VariableInfo
public class VariableInfo extends ObjectSE
タグによって(実行時に)作成または変更されるスクリプト変数に関する情報。この情報は TagExtraInfo クラスによって提供され、JSP の変換フェーズで使用されます。カスタムアクションによって生成されたスクリプト変数には、AT_BEGIN、NESTED、AT_END のいずれかのスコープが関連付けられています。
返されたオブジェクトのクラス名(VariableInfo.getClassName)は、スクリプト変数の型を判別するために使用されます。スクリプト変数には、プリミティブ型にはできないスコープ付き属性から値が割り当てられるため、「ボックス化」されることに注意してください。プリミティブの代わりに
java.lang.Integer
などの型を使用する必要があります。クラス名は、完全修飾クラス名または短いクラス名にすることができます。
完全修飾クラス名を指定する場合は、Web アプリケーションの CLASSPATH にあるクラスを参照する必要があります(Servlet 2.4 仕様を参照 - 基本的には WEB-INF/lib および WEB-INF/classes です)。そうしないと、変換時エラーが発生します。
VariableInfo オブジェクトで短いクラス名が指定されている場合、クラス名は、カスタムアクションが表示されるページのインポートディレクティブのコンテキストでのパブリッククラスの名前でなければなりません。クラスは、Web アプリケーションの CLASSPATH にも含まれている必要があります(Servlet 2.4 仕様を参照 - 基本的には WEB-INF/lib および WEB-INF/classes です)。そうしないと、変換時エラーが発生します。
使用コメント
多くの場合、完全修飾クラス名は、タグライブラリに認識されているため、タグハンドラーと同じ JAR ファイルで配信されるクラスを参照します。その他のほとんどの場合、JSP プロセッサーが構築されているプラットフォーム(Jakarta EE など)にあるクラスを参照します。この方法で完全修飾クラス名を使用すると、使用箇所が構成エラーに対して比較的耐性があります。
ショートネームは通常、カスタムアクションユーザー(作成者)から渡されたいくつかの属性に基づいてタグライブラリによって生成されるため、堅牢性が低くなります。たとえば、参照する JSP ページにインポートディレクティブがないと、無効なショートが発生します。名前クラスと変換エラー。
同期プロトコル
`scope` 属性の値は、生成されたプログラム内の変数の可視性には影響しません。これは、変数によって示されるオブジェクトへの追加の参照が存在する場所と期間に影響します。
getVariableInfo の呼び出しの結果は、VariableInfo オブジェクトの配列です。各オブジェクトは、スクリプト変数の名前、型、変数が新規かどうか、スコープを指定して、スクリプト変数を記述します。スコープは、図で説明するのが最も適切です。
JSP 2.0 仕様では、3 つの値の解釈を定義しています。
- NESTED (スクリプト変数が、それを定義するアクションの開始タグと終了タグ間の呼び出しページと同期されている場合)。
- AT_BEGIN: スクリプト変数が、それを定義するアクションの開始タグからスコープの終わりまで呼び出しページと同期されている場合。
- AT_END: スクリプト変数が、それを定義するアクションの終了タグの後、スコープの終了まで呼び出しページと同期される場合。
1可変同期ポイント 可変同期ポイント doStartTag() doInitBody() doAfterBody() doEndTag() doTag() 鬼ごっこ
AT_BEGIN、NESTED AT_BEGIN、AT_END IterationTag
AT_BEGIN、NESTED AT_BEGIN、NESTED AT_BEGIN、AT_END BodyTag
AT_BEGIN、NESTED 1 AT_BEGIN、NESTED 1 AT_BEGIN、NESTED AT_BEGIN、AT_END SimpleTag
AT_BEGIN、AT_END EVAL_BODY_INCLUDE
が返される場合はdoStartTag()
の後に呼び出され、それ以外の場合はdoInitBody()
の後に呼び出されます。TLD の変数情報
スクリプト変数情報は、ほとんどの場合、<tag> 要素の <variable> サブ要素を使用してタグライブラリ記述子に直接エンコードすることもできます。JSP 仕様を参照してください。
コンストラクターのサマリー
コンストラクター コンストラクター 説明 VariableInfo(StringSE varName, StringSE className, boolean declare, int scope)
コンストラクターこれらのオブジェクトは、TagExtraInfo インスタンスによって(変換時に)作成できます。
メソッドのサマリー
すべてのメソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 StringSE
getClassName()
この変数の型を返します。boolean
getDeclare()
これが新しい変数であるかどうかを返します。int
getScope()
変数の同期スコープを返します。StringSE
getVarName()
スクリプト変数の名前を返します。