カスタムタグを作成する
では、カスタムタグを作成しましょう。カスタムタグは、大きく分けて以下の2つのファイルを準備する必要があります。
●カスタムタグの処理を記述したクラスファイル
●カスタムタグをタグとして使用できるようにするためのタグライブラリ記述子
カスタムタグは、ただタグのプログラムを作るだけでは使えません。「このライブラリをこういうタグとして利用しますよ」ということを記述したファイルを用意することで、Webアプリケーション内でそのカスタムタグが利用できるようになります。これがタグライブラリ記述子と呼ばれるファイルです。
では、NetBeans 5.5で、まずはこのタグライブラリ記述子から作成してきましょう。――<ファイル><新規ファイル>メニューを選び、現れたウインドウから「Web」カテゴリ内の「タグライブラリ記述子」を選択してください。
新規ファイルの作成ウインドウで「タグライブラリ記述子」を選んで次へ進む。 |
次へ進むと、タグライブラリ記述子のファイル名と保存場所などを設定する表示が現れます。タグライブラリ記述子は、「TLD」という拡張子のファイルとして保存されます。ここでは「TLD名」のところに「mytag」と記述しておきましょう。これが、これから作成するカスタムタグのライブラリの名前です。このように記述すると、「フォルダ」「URI」「接頭辞」に、それぞれ自動的に値が設定されます。これらは、そのまま変更しないで完了してください。
TLD名を記述すると、フォルダ、URI、接頭辞が自動的に設定される。 |
これで、WEB-INF内に「tags」というフォルダが作られ、その中に「mytag.tld」というファイルが作成されます。これが、タグライブラリ記述子のファイルです。ここではNetBeansを利用して作成しましたが、それ以外の開発環境の場合は同じようにWEB-INF/tags内にmytag.tldファイルを作成してください。
作成されたタグライブラリ記述子mytag.tldには、初期状態で以下のようなコードが作成されます。
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
web-jsptaglibrary_2_0.xsd">
<tlib-version>1.0</tlib-version>
<short-name>mytag</short-name>
<uri>/WEB-INF/tlds/mytag</uri>
<!-- A validator verifies that the tags are used correctly at JSP
translation time. Validator entries look like this:
<validator>
<validator-class>com.mycompany.TagLibValidator</validator-class>
<init-param>
<param-name>parameter</param-name>
<param-value>value</param-value>
</init-param>
</validator>
-->
<!-- A tag library can register Servlet Context event listeners in
case it needs to react to such events. Listener entries look
like this:
<listener>
<listener-class>com.mycompany.TagLibListener</listener-class>
</listener>
-->
</taglib>
ただし、よく見ると、<!--から-->まではコメント文ですね。ということで、整理すると初期状態で書かれているのは以下のようなものになります。
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
web-jsptaglibrary_2_0.xsd">
<tlib-version>1.0</tlib-version>
<short-name>mytag</short-name>
<uri>/WEB-INF/tlds/mytag</uri>
</taglib>
<?xml>の後に、<taglib>というタグがあり、その中にいくつかのタグが組み込まれています。ざっとこれらのタグについて説明しておきましょう。
<taglib>タグ――これが、タグライブラリに関する記述をするためのタグです。まずこのタグを用意し、この中にタグライブラリに関する記述をします。
<tlib-version>タグ――タグライブラリのバージョンを記述します。
<short-name>タグ――タグを表記する際に使用する名前を指定します。
<uri>タグ――配置されているURIを記述します。