目次へ

5.4. カスタムタグの使用

最後にカスタムタグをJSPページから利用します。web.xmlへの設定を省略する方法もありますが、ここでは設定を行う方法について説明します。

<web-app>
  ...
  <taglib>
     <taglib-uri>http://www.techscore.com/tags/example</taglib-uri>
     <taglib-location>/WEB-INF/tld/example.tld</taglib-location>
  </taglib>
  ...
</webapp>

web.xmlでは<web-app>要素の子供として<taglib>要素を追加します。順番としては<servlet-mapping>や<error-page>の後、<resource-ref>の前です。順番の詳細はhttp://java.sun.com/dtd/にある「web-app」のDTDファイルを参考にして下さい。<taglib>要素内の子要素のそれぞれの意味は以下の通りです。

taglib-uri JSPページのtaglibディレクティブで指定するURI。このURIを元に使用するタグライブラリを検索します。
taglib-location タグ設定ファイルの場所を、WWWアプリケーションルートからの絶対パスで指定。

サンプルでは「http://www.techscore.com/tags/example」でHelloWorldTagを含むタグライブラリを検索する事になります。続いてJSPページの使用方法について説明します。

 <%@ page contentType="text/html; charset=EUC-JP" %>
 <%@ taglib uri="http://www.techscore.com/tags/example" prefix="example" %>
 <html>
 <head><title>Hello World</title></head>
 <body>
 <example:HelloWorld />
 </body>
 </html>

4章で説明しましたが、カスタムタグを使用するためには「taglib」ディレクティブが必要です。taglibディレクティブでは、「uri」属性で使用するタグライブラリのURI、「prefix」でそのタグライブラリを使用していることを示す接頭辞を指定します。サンプルでは先ほどweb.xmlで設定したURIに加え、接頭辞として「example」を指定しています。「jsp」など幾つかの主要な言葉を接頭辞として使用することはできません。

6行目で、HelloWorldタグを使用しています。2行目で設定した接頭辞、TLDファイル内に設定したHelloWorldタグの名前(ここでは「HelloWorld」)を組み合わせ

<example:HelloWorld />

という形でカスタムタグを実行しています。ボディ部が空であれば良いので、

<example:HelloWorld></example:HelloWorld>

でも構いません。ただし空で無かった場合、ボディ部に何か記述があった場合にはコンパイルエラーが発生します。

(実習課題3)

実習課題1・2で作成したカスタムタグを表示するJSPページを作成しなさい。

解答例はこちら

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp