JSP 標準タグライブラリ(JSTL)

JSP標準タグライブラリ(JSTL)は、JSPアプリケーションの一般的な中核機能をカプセル化したJSPタグの集合です。

JSTLは、反復、条件判断、XMLドキュメント操作、国際化タグ、SQLタグなどの一般的かつ構造化されたタスクをサポートします。これらに加えて、JSTLを統合したカスタムタグを使用するためのフレームワークも提供します。

JSTLタグが提供する機能に基づいて、5つのカテゴリに分類できます。

  • コアタグ
  • フォーマットタグ
  • SQLタグ
  • XMLタグ
  • JSTL関数

JSTL ライブラリのインストール

Apache TomcatにJSTLライブラリをインストールする手順は次のとおりです。

Apacheの標準タグライブラリからダウンロードしたバイナリパッケージ(jakarta-taglibs-standard-current.zip)。

ダウンロードjakarta-taglibs-standard-1.1.2.zipパッケージをダウンロードして解凍し、jakarta-taglibs-standard-1.1.2/lib/にある2つのjarファイル:standard.jarとjstl.jarファイルをコピーして/WEB-INF/lib/の下に。

tld 配下の、導入が必要な tld ファイルを WEB-INF ディレクトリにコピーします。

次に、web.xml ファイルに以下の設定を追加します。

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
    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 
        http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <jsp-config>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/fmt</taglib-uri>
    <taglib-location>/WEB-INF/fmt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/fmt-rt</taglib-uri>
    <taglib-location>/WEB-INF/fmt-rt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
    <taglib-location>/WEB-INF/c.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/core-rt</taglib-uri>
    <taglib-location>/WEB-INF/c-rt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/sql</taglib-uri>
    <taglib-location>/WEB-INF/sql.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/sql-rt</taglib-uri>
    <taglib-location>/WEB-INF/sql-rt.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/x</taglib-uri>
    <taglib-location>/WEB-INF/x.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/x-rt</taglib-uri>
    <taglib-location>/WEB-INF/x-rt.tld</taglib-location>
    </taglib>
    </jsp-config>
</web-app>

任意のライブラリを使用するには、各JSPファイルの先頭に<taglib>タグ。


コアタグ

コアタグは最も一般的に使用されるJSTLタグです。コアタグライブラリを参照する構文は次のとおりです。

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
タグ 説明
<c:out> JSPでデータを表示するために使用されます。<%= ... > と同様です。
<c:set> データを保存するために使用されます。
<c:remove> データを削除するために使用されます。
<c:catch> エラーを生成する例外状況を処理し、エラー情報を保存するために使用されます。
<c:if> 通常のプログラムで使用するifと同じです。
<c:choose> それ自体は<c:when>と<c:otherwise>の親タグとしてのみ使用されます。
<c:when> <c:choose>の子タグで、条件が成立するかどうかを判断するために使用されます。
<c:otherwise> <c:choose>の子タグで、<c:when>タグの後に続き、<c:when>タグがfalseと判断されたときに実行されます。
<c:import> 絶対URLまたは相対URLを取得し、その内容をページに公開します。
<c:forEach> 基本的な反復タグで、さまざまなコレクション型を受け入れます。
<c:forTokens> 指定された区切り文字に基づいて内容を分割し、反復出力します。
<c:param> インクルードまたはリダイレクトするページにパラメータを渡すために使用されます。
<c:redirect> 新しいURLにリダイレクトします。
<c:url> オプションのクエリパラメータを使用してURLを作成します。

フォーマットタグ

JSTLフォーマットタグは、テキスト、日付、時刻、数値をフォーマットして出力するために使用されます。フォーマットタグライブラリを参照する構文は次のとおりです。

<%@ taglib prefix="fmt" 
           uri="http://java.sun.com/jsp/jstl/fmt" %>
タグ 説明
<fmt:formatNumber> 指定された形式または精度で数値をフォーマットします。
<fmt:parseNumber> 数値、通貨、パーセントを表す文字列を解析します。
<fmt:formatDate> 指定されたスタイルまたはパターンで日付と時刻をフォーマットします。
<fmt:parseDate> 日付または時刻を表す文字列を解析します。
<fmt:bundle> リソースをバインドします。
<fmt:setLocale> ロケールを指定します。
<fmt:setBundle> リソースをバインドします。
<fmt:timeZone> タイムゾーンを指定します。
<fmt:setTimeZone> タイムゾーンを指定します。
<fmt:message> リソースバンドルファイルの情報を表示します。
<fmt:requestEncoding> requestの文字エンコーディングを設定します。

SQLタグ

JSTL SQLタグライブラリは、リレーショナルデータベース(Oracle、MySQL、SQL Serverなど)とやり取りするためのタグを提供します。SQLタグライブラリを参照する構文は次のとおりです。

<%@ taglib prefix="sql" 
           uri="http://java.sun.com/jsp/jstl/sql" %>
タグ 説明
<sql:setDataSource> データソースを指定します。
<sql:query> SQLクエリ文を実行します。
<sql:update> SQL更新文を実行します。
<sql:param> SQL文のパラメータを指定された値に設定します。
<sql:dateParam> SQL文の日付パラメータを指定されたjava.util.Dateオブジェクトの値に設定します。
<sql:transaction> 共有データベース接続内でネストされたデータベース動作要素を提供し、すべてのステートメントをトランザクションとして実行します。

XMLタグ

JSTL XMLタグライブラリは、XMLドキュメントを作成および操作するためのタグを提供します。XMLタグライブラリを参照する構文は次のとおりです。

<%@ taglib prefix="x" 
           uri="http://java.sun.com/jsp/jstl/xml" %>

XMLタグを使用する前に、XMLおよびXPath関連のパッケージを<Tomcatインストールディレクトリ>\libにコピーする必要があります。

タグ 説明
<x:out> <%= ... >に似ていますが、XPath式にのみ使用されます。
<x:parse> XMLデータを解析します。
<x:set> XPath式を設定します。
<x:if> XPath式を評価し、真の場合、本体の内容を実行し、それ以外の場合は本体をスキップします。
<x:forEach> XMLドキュメント内のノードを反復処理します。
<x:choose> <x:when>と<x:otherwise>の親タグです。
<x:when> <x:choose>の子タグで、条件判断を行うために使用されます。
<x:otherwise> <x:choose>の子タグで、<x:when>がfalseと判断されたときに実行されます。
<x:transform> XSL変換をXMLドキュメントに適用します。
<x:param> <x:transform>と一緒に使用して、XSLスタイルシートを設定します。

JSTL関数

JSTLには一連の標準関数が含まれており、そのほとんどは一般的な文字列処理関数です。JSTL関数ライブラリを参照する構文は次のとおりです。

<%@ taglib prefix="fn" 
           uri="http://java.sun.com/jsp/jstl/functions" %>
関数 説明
fn:contains() 入力文字列が指定された部分文字列を含むかどうかをテストします。
fn:containsIgnoreCase() 入力文字列が指定された部分文字列を含むかどうかをテストします(大文字と小文字を区別しません)。
fn:endsWith() 入力文字列が指定されたサフィックスで終わるかどうかをテストします。
fn:escapeXml() XMLマークアップとして解釈される可能性のある文字をエスケープします。
fn:indexOf() 指定された文字列が入力文字列内で出現する位置を返します。
fn:join() 配列の要素を1つの文字列に結合して出力します。
fn:length() 文字列の長さを返します。
fn:replace() 入力文字列内の指定された位置を指定された文字列に置き換えて返します。
fn:split() 文字列を指定された区切り文字で分割し、部分文字列の配列を構成して返します。
fn:startsWith() 入力文字列が指定されたプレフィックスで始まるかどうかをテストします。
fn:substring() 文字列の部分文字列を返します。
fn:substringAfter() 指定された部分文字列より後の文字列の部分を返します。
fn:substringBefore() 指定された部分文字列より前の文字列の部分を返します。
fn:toLowerCase() 文字列内の文字を小文字に変換します。
fn:toUpperCase() 文字列内の文字を大文字に変換します。
fn:trim() 先頭と末尾の空白文字を削除します。
その他の拡張