JSTL リファレンス

JSTL 1.1

JSTL (JSP Standard Tag Library) は J2EE 1.5 で標準化されたカスタムタグライブラリです。 JSTL 1.1 は以下の 5 つのライブラリで構成されています。

コア 変数操作や条件分岐などの標準的なタグライブラリです。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
国際化 Java の国際化機能を利用するためのタグライブラリです。
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
XML DOM + XPath で値参照や条件分岐などを行うタグライブラリです。
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
SQL JSP 内から SQL を実行し結果を表示するためのタグライブラリです。
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
関数 よく利用される関数を定義したタグライブラリです。
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

JSTL 1.0 では名前空間に http://java.sun.com/jstl/... が使用されていましたが、 1.1 以降では http://java.sun.com/jsp/jstl/... を使用してください。

また式言語 (Expression Language; EL) と呼ばれる機能と 組み合わせることにより可読性の高い JSP を記述することが出来ます。

JSTL コア

<c:import> URL の内容を取得します。
<c:out> HTML エスケープした結果を出力します。
<c:param> URL を使用するタグにリクエストパラメータを指定します。
<c:redirect> 別の URL へリクエストをリダイレクトします。
<c:set> 評価結果を特定スコープの変数に設定します。
<c:remove> 特定スコープ内の変数を除去します。
<c:url> リクエストパラメータを追加して URL を組み立てます。
<c:if> 条件が真の場合にタグ内を出力する簡単な条件分です。
<c:choose> if-elseif-else 構文を記述します。
<c:when> <c:choose> ブロックにおいて if-elseif を記述します。
<c:otherwise> <c:choose> ブロックにおいて else を記述します。
<c:forEach> コレクションの列挙や回数指定のループを行います。
<c:forTokens> 文字列をデリミタで区切ったトークンを列挙します。
<c:catch> タグ内で発生したすべての例外を catch します。

JSTL 国際化

<fmt:requestEncoding> リクエストの文字エンコーディングを設定します。
<fmt:setLocale> 設定変数にロケールを設定します。
<fmt:timeZone> タグ内限定のタイムゾーンを設定します。
<fmt:setTimeZone> 設定変数にタイムゾーンを設定します。
<fmt:bundle> リソースバンドルをロードしてタグ内で使用可能にします。
<fmt:setBundle> リソースバンドルをロードして特定の変数または設定変数に格納します。
<fmt:message> リソースからロケールに適したメッセージをフォーマットして出力します。
<fmt:param> <message> タグのメッセージをフォーマットする場合のパラメータを指定します。
<fmt:formatNumber> 数値、パーセント、通貨をフォーマットして出力します。
<fmt:parseNumber> 数値、パーセント、通貨書式の文字列を解析して数値化します。
<fmt:formatDate> さまざまなスタイルやパターンで日時をフォーマットします。
<fmt:parseDate> 日時表記の文字列を解析します。

JSTL XML

XPath を使用して DOM に基づいた出力/フロー制御/変換処理を行います。

<x:out> XPath の評価結果を出力します。
<x:param> XSL 変換処理にパラメータを渡します。
<x:parse> XML の内容を JSTL で利用できるように解析します。
<x:set> XPath の評価結果を変数に格納します。
<x:transform> XSL スタイルシートを用いて XSL 変換処理を行います。
<x:if> XPath の評価結果による条件分岐を行います。
<x:forEach> XPath で選択したノードを列挙します。
<x:choose> Simple conditional tag that establishes a context for mutually exclusive conditional operations, marked by <when> and <otherwise>
<x:when> Subtag of <choose> that includes its body if its expression evalutes to 'true'
<x:otherwise> <x:choose> において else 処理を記述します。

JSTL SQL

JSP からデータベースを操作します。

<sql:transaction> データベースのトランザクションスコープを定義します。
<sql:query> クエリーを実行します。
<sql:update> 更新処理を実行します。
<sql:param> SQL にパラメータを設定します。
<sql:dateParam> SQL に日付型のパラメータを設定します。
<sql:setDataSource> データソースを変数に設定します。

JSTL 関数

EL 内で使用できる標準関数です。

fn:contains() 文字列内に部分文字列が含まれているかどうかを評価します。
fn:containsIgnoreCase() 大文字と小文字を区別せずに文字列が含まれているかどうかを判定します。
fn:endsWith() 特定の文字列で終了しているかを判定します。
fn:escapeXml() 文字列を XML エスケープします。
fn:indexOf() 部分文字列の最初の出現位置を参照します。
fn:join() 文字列配列を連結して一つの文字列にします。
fn:length() コレクションの数や文字列の長さを参照します。
fn:replace() 文字列内の部分文字列を全て置き換えます。
fn:split() 文字列を部分文字列で分割します。
fn:startsWith() Tests if an input string starts with the specified prefix.
fn:substring() Returns a subset of a string.
fn:substringAfter() Returns a subset of a string following a specific substring.
fn:substringBefore() Returns a subset of a string before a specific substring.
fn:toLowerCase() Converts all of the characters of a string to lower case.
fn:toUpperCase() Converts all of the characters of a string to upper case.
fn:trim() Removes white spaces from both ends of a string.