Jsp-custom-tags
JSP-カスタムタグ
この章では、JSPのカスタムタグについて説明します。 カスタムタグは、ユーザー定義のJSP言語要素です。 カスタムタグを含むJSPページがサーブレットに変換されると、タグはタグハンドラーと呼ばれるオブジェクトの操作に変換されます。 JSPページのサーブレットが実行されると、Webコンテナはこれらの操作を呼び出します。
JSPタグ拡張機能を使用すると、JavaServer Pageに直接挿入できる新しいタグを作成できます。 JSP 2.0仕様では、これらのカスタムタグを記述するためのシンプルタグハンドラが導入されました。
カスタムタグを作成するには、 SimpleTagSupport クラスを拡張し、* doTag()*メソッドをオーバーライドするだけで、タグのコンテンツを生成するコードを配置できます。
「Hello」タグを作成
<ex:Hello>という名前のカスタムタグを定義し、本文なしで次のように使用することを検討してください-
カスタムJSPタグを作成するには、最初にタグハンドラーとして機能するJavaクラスを作成する必要があります。 次のように HelloTag クラスを作成しましょう-
上記のコードには、* doTag()メソッドが getJspContext()メソッドを使用して現在のJspContextオブジェクトを取得し、それを使用して *"Hello Custom Tag!" を現在の JspWriter オブジェクトに送信する単純なコーディングがあります。
上記のクラスをコンパイルし、環境変数CLASSPATHで利用可能なディレクトリにコピーしてみましょう。 最後に、次のタグライブラリファイルを作成します: <Tomcat-Installation-Directory> webapps \ ROOT \ WEB-INF \ custom.tld 。
次に、JSPプログラムで上記のカスタムタグ Hello を次のように使用します。
上記のJSPを呼び出すと、これは次の結果を生成するはずです-
タグ本文へのアクセス
標準タグで見たように、タグの本文にメッセージを含めることができます。 あなたが <ex:Hello> という名前のカスタムタグを定義し、あなたがボディで次のようにそれを使用したいと考えていることを考慮してください-
上記のタグコードに次の変更を加えて、タグの本文を処理します-
ここで、呼び出しの結果の出力は、タグに関連付けられたJspWriterに書き込まれる前に、最初に StringWriter にキャプチャされます。 次のようにTLDファイルを変更する必要があります-
次のように適切なボディで上記のタグを呼び出しましょう-
次の結果が表示されます-
カスタムタグ属性
カスタムタグとともにさまざまな属性を使用できます。 属性値を受け入れるために、カスタムタグクラスは、以下に示すように、JavaBeanのセッターメソッドと同じ*セッター*メソッドを実装する必要があります-
属性の名前は "message" であるため、setterメソッドは* setMessage()です。 次のように *<attribute> 要素を使用してTLDファイルにこの属性を追加しましょう-
次のようにメッセージ属性を使用してJSPをフォローしましょう-
これにより、次の結果が生成されます–
属性の次のプロパティを含めることを検討してください-
S.No. | Property & Purpose |
---|---|
1 |
name name要素は、属性の名前を定義します。 各属性名は、特定のタグに対して一意である必要があります。 |
2 |
required これは、この属性が必須かオプションかを指定します。 オプションの場合はfalseになります。 |
3 |
rtexprvalue タグ属性のランタイム式の値が有効かどうかを宣言します |
4 |
type この属性のJavaクラスタイプを定義します。 デフォルトでは、 String と見なされます |
5 |
description 情報の説明を提供できます。 |
6 |
fragment この属性値を JspFragment として扱うかどうかを宣言します。 |
以下は、属性に関連するプロパティを指定する例です-
あなたが2つの属性を使用している場合、次のようにTLDを変更することができます-