Taglibs

Taglibsって?

Jakarta Taglibsサブプロジェクトでは、 Webアプリケーションを作成する上で、 便利なカスタムタグを提供しています。

ここでは、カスタムタグと JSTLについて簡単に触れたいと思います。

カスタムタグって?

カスタムタグというのは、JSPでViewを実装する技術の1つで、 名前の通りオリジナルのタグを作ります。

スクリプトレッドで書く代わりにカスタムタグを使うことで、 以下のような利点があります。 スクリプトレットで実装した例
<%
for(int i=0; i<list.size(); i++){
  User user = (User)list.get(i);
%>
  <%=user.getName() %>
  <%=user.getAge() %>
<%
}
>%
カスタムタグで実装した例
<c:forEach var="user" items="${list}">
  <c:out value="${user.name}"/>
  <c:out value="${user.age}"/>
</c:forEach>
ページがすっきり見易く作れるので後で直しやすいし 、プログラマーとデザイナーの分業も進みます。

カスタムタグサンプル

私自身、カスタムタグをほとんど使ったことがなかったので、 JSTLを触る前に、簡単なカスタムタグをいくつか作ってみました。 超入門レベルでは JavaでHello World JSP(カスタムタグ)編などが参考になります。

タグハンドラ
HelloTag.javaEchoTag.javaRoopTag.java

タグライブラリディスクリプタ
tag01.tld

カスタムタグを使うJSP
test01.jsp

簡単に作りたい場合、web.xmlにマッピングを書かずに JSPから直接TLDファイルにマッピングも可のようです。
<%@ taglib uri="/WEB-INF/tag01.tld" prefix="t" %>

JSTLサンプル

JSPはJSP Standard Tag Libraryの略で、訳すと標準タグライブラリです。 ループ、条件式などの よく使うカスタムタグが標準化され、提供されています。

JSTLを使うには、まず、バイナリをダウンロードします。 Jakarta-taglibのbinaryダウンロードページ のstandard/ディレクトリに目的の物があります。 2002/8/26現在の最新版は1.0.1です。
ダウンロードしたファイルを解凍したすると、中に standard-examples.war というサンプルのWARファイルがあります。

これを真似て自分でもいくつか作ってみました。
実行にはWebアプリケーションのlibディレクトリに、 最低限jstl.jarとstandard.jarを配置し、 JSP(かweb.xml)から指定した位置にTLDファイルを配置する必要があります。

test01.jsp
Iterationタグのサンプル
Man.java
上のサンプルで使ったクラス
test02.jsp
条件分岐タグのサンプル

これだけだとけっこう簡単ですね。

参考

JavaWorld 2002.6〜 Taglib研究室

(2002/8/26)
もどる