目次へ

2005.10.03 株式会社四次元データ 宮澤了祐

11.3. SimpleTagの使用

Tagインタフェースを実装して作成したカスタムタグと同様にタグ定義ファイルを作成して使用しますが、 J2EE1.4になったことでDTDベースだった定義ファイルがXMLSchmeで定義されるようになりました。

J2EE1.4へweb.xmlを対応させるにはこちらを参考してください。

web.xmlの<jsp-config>以下の<taglib>以下に設定します。

<jsp-config>
    <taglib>
      <taglib-uri>http://www.techscore.com/MySimpleTag</taglib-uri>
      <taglib-location>/WEB-INF/tld/MySimpleTag.tld</taglib-location>
    </taglib>
    ...
</jsp-config>

「taglib-uri」にカスタムタグを定義するURIを設定し、「taglib-location」にTLDファイルのパスを設定します。

TLDファイルの作成

タグライブラリの情報を設定するTLDファイルを作成します。 TLDファイルもDTDベースからXMLSchemaベースに変更となりました。 SimpleTagを使用する場合、次のように変更する必要があります。

<JSP1.2のTLDファイル>

<?xml version="1.0" ?>
<!DOCTYPE taglib  PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
  "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>

  <tlib-version>1.0</tlib-version>
  <jsp-version>1.2</jsp-version>
  ...

<JSP2.0に変更後>

<?xml version="1.0" ?>
<taglib 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"
        version="2.0">
  <tlib-version>1.0</tlib-version>
  ...

以下はタグライブラリ定義ファイルの主な設定要素です。

taglib要素

tlib-version 必須 タグライブラリのバージョン。必ず「1.0」を指定すること。
short-name 必須 タグライブラリの略称。
tag   カスタムタグの設定。カスタムタグの数だけ繰り返す。詳細は次表で。

tag要素

name 必須 カスタムタグの名前。これがJSPページで使用するタグの名前になる。
tag-class 必須 タグハンドラのクラス名。
body-content  

以下の内のどれかを指定。

empty ボディ部は空になる。
JSP ボディ部はJSPの構文を用いて記述される。SimpleTagを使用する場合はJSPを設定していけません。
tagdependent ボディ部はタグハンドラによって評価される構文で記述される。
scriptless ボディ部にスクリプトレットを使用しない。
attribute   タグに指定出来る属性を指定します。以下を参照してください。

attribute要素

name 必須 属性の名前を指定します。
required   属性が必要かどうかを「true」または「false」で指定します。
rtexprvalue   属性値に式が使用できるかを「true」または「false」で指定します。ディフォルトは「false」です。
type   属性の型を指定します。
fragment   属性値がfragmentかどうかを「true」または「false」で指定します。fragmentについては13章で解説します。

ここで作成したMySimpleTagの設定部分は以下のようになります。

<?xml version="1.0" ?>
<taglib 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"
        version="2.0">

  <tlib-version>1.0</tlib-version>
  
  <short-name>myTag</short-name>

  <tag>
    <name>MySimpleTag</name>
    <tag-class>MySimpleTag</tag-class>
    <body-content>empty</body-content>
  </tag>
</taglib>

呼び出し部分は今までと変わりません。 JSPファイルのtaglibディレクティブにURIとprefixを記述するだけです。

<%@ taglib uri="http://www.TechScore.com/MySimpleTag" prefix="MyTag" %>

<MyTag:MySimpleTag />

以下のように出力されれば成功です。

2005/08/31

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp