public class VariableInfo extends ObjectSE
カスタムアクションによって生成されたスクリプト変数には、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 ページにインポートディレクティブがないと、無効なショートが発生します。名前クラスと変換エラー。
同期プロトコル
getVariableInfo の呼び出しの結果は、VariableInfo オブジェクトの配列です。そのような各オブジェクトは、名前、型、変数が新しいかどうか、そのスコープが何であるかを提供することにより、スクリプト変数を記述します。スコープは写真で最もよく説明されています。
JSP 2.0 仕様では、3 つの値の解釈を定義しています。
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 仕様を参照してください。
修飾子と型 | フィールドと説明 |
---|---|
static int | AT_BEGIN スクリプト変数が開始タグの後に表示されるスコープ情報。 |
static int | AT_END スクリプト変数が終了タグの後に表示されるスコープ情報。 |
static int | NESTED スクリプト変数が開始 / 終了タグ内でのみ表示されるスコープ情報。 |
コンストラクターと説明 |
---|
VariableInfo(StringSE varName, StringSE className, boolean declare, int scope) コンストラクターこれらのオブジェクトは、TagExtraInfo インスタンスによって(変換時に)作成できます。 |
修飾子と型 | メソッドと説明 |
---|---|
StringSE | getClassName() この変数の型を返します。 |
boolean | getDeclare() これが新しい変数であるかどうかを返します。 |
int | getScope() 変数の字句スコープを返します。 |
StringSE | getVarName() スクリプト変数の名前を返します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public static final int NESTED
public static final int AT_BEGIN
public static final int AT_END
Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.