JSTLって何?
JSTL(JavaServer Pages Standard Tag Library)はWebアプリケーションのプレゼンテーションで多用されるであろうアクションをあらかじめ提供することで、同じアクションを重複して開発することを回避し、また共通のアクションを用意することでJSPの可読性や生産性を高める役割や効果があります。
タグライブラリといえどもそれはJavaに他ならない
タグライブラリは「JavaServer Pages Standard Tag Library Version 1.2」の「1.2 Multiple Tag Libraries」の言葉に従えば、JSP page内から使用される機能をカプセル化したアクションの集合です。アクションは先述の通り「サーバ側のJavaのロジックを呼び出すもの」です。つまり、JSPのタグに呼応したサーバ側のロジックの集まりをタグライブラリと呼びます。
JSTL 1.2では5つのタグライブラリが用意されています。タグライブラリは似通った機能を有するものが集まったものです。表6がJSTLのタグライブラリの概要です。使用する場合はtaglibディレクティブでuri属性を使ってタグライブラリのuriを指定する必要があります。ただし、JSTLの場合、TLDやweb.xmlへの記述は不要です。以下に、JSTLのタグライブラリ概要を記載します。
Core(prefix:c)
主にJSP自体の記述を簡単にするための機能が集められています(変数の設定・削除、例外の捕捉、制御ロジックなど)。またアクションで説明したインポートと同様な機能もあります。
- 一般目的のアクション:<c:out>は変数を出力します。<c:set>と<c:remove>は変数の設定・削除をし、<c:catch>は例外を捕捉します。
- 条件アクション:<c:if>、<c:choose>、<c:when>、<c:otherwise>はプログラム言語の条件文に相当するアクションですが、よりきめの細かい制御ができます。
- イタレータアクション:<c:forEach>はJavaのfor文に相当する機能です。<c:forToken>は文字列を区切り文字により分割し、分割した文字列を順番に処理します。
- URL関連アクション:<c:import>、<c:redirect>は外部ファイルのインポートやリダイレクトをURLベースで行います。従って、アプリケーション(コンテクスト)を超えたファイルのインポートが可能です。
- The Java EE 5 Tutorial「Core Tag Library」
XML(prefix:x)
XMLアクションはXMLコアアクション、XMLフロー制御アクション、XML変換アクションの3つのカテゴリに分かれます。XMLのアクションはXPath(文献1)が基礎を形成しています。
- XMLコアアクション:<x:parse>はXMLを解析します。<x:out>はXPath式の評価結果を出力します。<x:set>はXPath式の評価結果を変数へ設定します。
- XMLフロー制御アクション:Coreタグライブラリにも<c:if>などフローを制御するためのアクションがありますが、条件式にXPath式を使用します。
<x:if select=XPath式>のように記述します。他にも<x:choose>、<x:when>、<x:otherwise>、<x:forEach>などCoreアクションと同じ機能を持つアクションが存在します。条件式がXPath式であることが特徴です。 - XML変換アクション:<x:transform>はXSLT(文献1)シートを使用してXML文書を変換します。
- The Java EE 5 Tutorial「XML Tag Library」
i18n(Internationalization)(prefix:fmt)
文字コードのエンコーディング。数値や日付データなど文化や国により異なる表現形式に応じた出力など、国際化に関連した機能が集められています。
SQL(prefix:sql)
JSP pageからデータベース操作できる機能が集められています。
Function(prefix:fn)
主に文字列操作を行う機能が集められています。
おさらい
今回はJSPの構文の要点を図1のJSPの構造に沿って説明しました。分かりづらい点や間違いやすい点のみを強調しています。詳しく知りたい方はJSP 1.2またはJSTL 1.2の仕様書を読んで確認してください。ただし、入門レベルには十分な説明であり、次回のWebアプリケーションの開発において、実際の使用方法を説明します。今回紹介した項目が出てきたら詳細に説明したいと考えています。今は言葉が頭に残っているくらいでも構いません。
次回は、芋焼酎を扱うネットショップのサンプルアプリケーションを作成します。
参考文献
- 『XSLT実践ガイド』:Steven Holzner著、株式会社アスキー社、2002年4月
