Javaに関する様々な情報をご紹介します。

2Standard Taglibsの概要

Javaに関する様々な情報をご紹介します。

Standard Taglibsの概要

ここでは、Taglibsプロジェクトの内、JSTL(JSP Standard Tag Library)を実装したStandard Taglibsの概要について解説します。

実行環境
  • ・WindowsXP Home Edition
  • ・J2SDK 1.4.2_04
  • ・Tomcat 5.0.18
  • ・Standard Taglib 1.1.0

式言語(Express Language)

式言語(Express Language)とは、JSPの特徴であるデザイナとプログラマの分業を進めるために導入されたJavaコードを簡易に表現する方法です。Standard Taglibsで使用できるほか、JSP2.0でも導入される予定です 。JSPで変数やオブジェクトの値を取得する場合、<%= register.getName( ) %>や<% String name = request.getParameter("name"); %>といった処理を行います。これらのコードがJSPファイル内に頻繁に表れると、コードが読みにくいものとなります。式言語(EL)を使用すると、これらのコードをより簡潔に記述できるようになります。

ELの使用例

EL使用 EL未使用 処理内容
${value} <%= value %> valueの値を取得
${register.name} <%= register.getName( ) %> registerオブジェクトのnameプロパティを取得
${requestScope.value} <% String value = (String)request.
getAttribute("value");
%>
リクエストスコープを持つ、valueオブジェクトを取得
${param.name} <% String value = request.
getParameter("name");
%>
前ページのテキストボックス(name)の値を取得
${paramValues.family} <% String[ ] values = request.
getParameterValues("family");
%>
前ページのチェックボックス(family)の値を取得

タグライブラリ

Standard Taglibsには5つのタグライブラリが用意されています。

1. coreタグライブラリ
基本的な処理を行うタグライブラリです。値をセットする<c:set>、値を表示する<c:out>、条件分岐を行う<c:if>などのタグがあります。
2. I18nタグライブラリ
言語・日付・時刻などのローカライズ処理を行うタグライブラリです。ロケールを設定する<fmt:setLocale>、日付・時刻の書式を設定する<fmt:formatDate>、数値の書式を設定する<fmt:formatNumber>などのタグがあります。
3. SQLタグライブラリ
データベース操作に関する処理を行うタグライブラリです。コネクション情報を設定する<sql:setDataSource>、select処理を行う<sql:query>、トランザクションの指定を行う<sql:transaction>などのタグがあります。
4. XMLタグライブラリ
XML処理を行うタグライブラリです。XML文書を解析する<x:parse>、XMLデータを出力する<x:out>、条件分岐を行う<x:choose>、<x:when>などのタグがあります。
5. Functionsタグライブラリ
主に文字列処理を行うタグライブラリです。文字列を検索するfn:contains、文字列を変換するfn:replace、文字列を抜き出すfn:substringなどのタグがあります。

タグライブラリを使用する際はJSPファイルにtaglibディレクティブを記載します。taglibディレクティブのuri属性にタグライブラリのURIを、prefix属性にそのタグライブラリを使用する際にタグに指定するprefixを指定します。JSTLのuri属性とprefix属性はJSTL仕様書で、以下の値を指定することが推奨されています。

uri属性、prefix属性の推奨値

タグライブラリ uri属性 prefix属性
core http://java.sun.com/jsp/jstl/core c
I18n http://java.sun.com/jsp/jstl/fmt fmt
SQL http://java.sun.com/jsp/jstl/sql sql
XML http://java.sun.com/jsp/jstl/xml x
Functions http://java.sun.com/jsp/jstl/functions fn
Taglibs_taglibディレクティブ

使用例

Standard Taglibsの使用例について解説します。例題では、前ページの入力画面(form.html)で入力された値を、次ページの表示画面(result.jsp)で表示する処理を行います。

1. HTMLファイルの作成

前ページの入力画面(form.html)を作成します。

form.html

<html>
<title><head>入力画面(form.html)</head></title>
<body>

名前を入力してください。
<!-- (1)遷移先にresult.jspを指定 -->
<form action="result.jsp" method="post">
    <input type="text" name="name">
    <input type="submit" value="送信" name="submit">
</form>

</body>
</html>

2. JSPファイルの作成

次ページの表示画面(result.jsp)を作成します。

result.jsp

<%@ page contentType="text/html; charset=Shift_JIS" %>
<!-- (1)taglibディレクティブの指定 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

<html>
<head><title>表示画面(result.html)</title></head>
<body>

あなたの名前は
<!-- (2)c:outタグで、${param.name}の値を表示。${param.name}は
       前ページのテキストボックス(name)を値を表す。 -->
<c:out value="${param.name}" />
です。

</body>
</html>

3. ファイルの配置

Tomcat上で動作させるために、必要なディレクトリ・ファイルを配置します。

3-1. 今回動作させるWebアプリケーションのコンテキストのルートディレクトリをEXStandardとします。$CATALINA_HOME\webapps配下にEXStandardディレクトリを作成します。$CATALINA_HOMEはTomcatのルートディレクトリを表します。
3-2. $CATALINA_HOME\webapps\EXStandard配下にWEB-INFディレクトリを、$CATALINA_HOME\webapps\EXStandard\WEB-INF配下にlibディレクトリを作成します。
3-3. Standard Taglibsのバイナリ版を解凍した中にjstl.jarファイルとstandard.jarファイルがあります。
$CATALINA_HOME\webapps\EXStandard\WEB-INF配下にそれらのjarファイルをコピーします。Standard Taglibsのバイナリ版のダウンロード方法については「Javaの道:Taglibs(インストール)」を参照してください。
3-4. $CATALINA_HOME\webapps\EXStandard配下に今回作成したform.html、result.jspを配置します。最終的なディレクトリ構成は以下のようになります。
Taglibs_ファイルの配置

4. 動作確認

Tomcatを起動させ、http://localhost:8080/EXStandard/form.htmlにアクセスします。表示された入力フォームに値を入力し、「送信」ボタンを押します。次ページで入力フォームで入力した値が表示されると正常に動作しています。※今回は日本語処理をしていないため、入力フォームには日本語を入力しないでください。

Taglibs_動作確認

2Standard Taglibsの概要