I will be waiting for your knock ever after from today.


Visards, Inc.

Java Sticky Note

java
  ・JSTL
  ・Commons Net
  ・Apache
  ・Tomcat
  ・James
  ・Jetspeed
  ・POI
  ・Jexl
  ・Jelly
  ・Blojsom
  ・eclipse

link
  ・James

author
  ・profile

JSTL  
<< prev | JSTL Index | next >>
Standard TaglibsによるJSTLの利用

mixiチェック

3. Jakarta Taglibs
Jakarta Taglibsプロジェクト は,カスタムタグライブラリ作成を行っているApache Jakartaプロジェク トのサブプロジェクトです.さまざまなカスタムタグ ライブラリが開発・提供されていますが,そのプロダ クトの1つにStandard Taglibsがあります.これが, Jakarta TaglibsプロジェクトによるJSTLの実装です. Taglibsプロジェクトではタグライブラリだけでなく, タグライブラリの作成やプログラミングに有用な関連 プロダクトの開発も行われています. 表3に,Taglibsプロジェクトで開発されているプロ ダクトの一覧を示します.ここで開発されているライ ブラリは,そのステータスにより次のように分類され ています.
    ● JCP標準タグライブラリ
    JCPにより標準化されているタグライブラリの実装

    ● サポートタグライブラリ
    Jakarta Taglibsプロジェクトにおいて公式にサポー トされているタグライブラリ

    ●ツール拡張
    カスタムタグライブラリを使用する上でのサポートツール

    ●サンドボックス
    Jakarta Taglibsプロジェクトの正式なサポートは行 われていないライブラリ

    表3 Taglibs が提供するタグライブラリ一覧
    ライブラリ名概要ステータス
    StandardJSTLの実装JCP標準
    ApplicationServletContextオブジェクトを取り扱うサポート
    Benchmarkパフォーマンステスト用サポート
    BSFBean Scripting Frameworkを取り扱うサポート
    CacheJSPの一部をキャッシュするサポート
    DateTime日付を取り扱うサポート
    DBTagsSQLデータベースへのアクセスを行うサポート
    I18N国際化ライブラリを提供するサポート
    InputHTMLのformタグを取り扱うサポート
    IOFTPやSOAPなどさまざまな入出力を取り扱うサポート
    JMSJMSを取り扱うサポート
    JNDIJNDIを取り扱うサポート
    Loglog4jによるログ出力を行うサポート
    Mailerメールを送信するサポート
    PagePageContextオブジェクトを取り扱うサポート
    Random乱数,ランダムな文字列を生成するサポート
    RegexpPerl準拠の正規表現を取り扱うサポート
    RequestHTTPリクエストを取り扱うサポート
    ResponseHTTPレスポンスを取り扱うサポート
    ScrapeWebドキュメントから内容を抽出するサポート
    SessionHttpSessionオブジェクトを取り扱うサポート
    String文字列を操作するサポート
    XtagsXSLTライクな言語を提供するサポート
    UltraDevDreamwaverでカスタムタグを取り扱うツール拡張
    IteratorsJSTLの反復処理を補足するサンドボックス
    UnstandardJSTLで標準化されていないロジックを提供するサンドボックス
公式にサポートされているタグライブラリだけでも, かなりの量があります.ぜひ参照してみてください.
Standard Taglibsは,JCP標準タグライブラリです. ここには,表1で記述した4つのライブラリが含まれ ています.本稿では,Standard Taglibsのcoreライブ ラリとELを中心に,Standard Taglibsを用いたJSTL の利用方法を解説します.

3.1 Standard Taglibsのインストール
Standard Taglibsのダウンロードと環境設定を行い ます.

3.1.1 動作環境
Standard Taglibsを使用するためには,Servlet 2.3 版及びJSP 1.2版対応のサーブレット実行環境が必要 です.本稿では,サーブレット実行環境としてTomcat 4.1.23を使用します(以下では,Tomcatがインスト ールされているディレクトリを$TOMCAT_HOMEと 記述します).OSにはLinux,Java実行環境にはJ2SE 1.4.1_01 を使用していますが,もちろんSolaris や Windows環境でも使用可能です.

3.1.2 最新版Standard Taglibs のインストール
本稿執筆時点でのStandard Taglibs最新版は,1.0.3 です.これは,JSTL 1.0の実装を提供するものです. Standard Taglibs最新版のバイナリは, http://www.apache.org/dist/jakarta/taglibs/standard/binaries/ からダウンロードできます.ここから jakarta-taglibsstandard-1.0.3.tar.gzをダウンロードします. このダウンロードしたファイルを展開すると作成さ れる,libディレクトリの下にあるjstl.jar,standard.jar, jaxen-full.jar,saxpath.jarの各ファイルをWebアプリ ケーションのWEB-INF/libにコピーしてください.

以上で,Standard Taglibsが使用可能となります. なお,JSTLのサンプルプログラムが,同様に展 開して作成されるstandard-examples.warファ イルにあります.ここには,JSTLのタグの使い 方を理解するのによいサンプルが多数含まれて います. このサンプルを実行する場合は, $TOMCAT_HOME/webapps/下にこのファイ ルを配置して,Tomcatを再起動してください. http://hostname:8080/standard-examples/か らアクセス可能です.

3.2 JSTLによるページの記述方法
早速,JSTLを使用したページの記述を見てみ ることにしましょう.リスト1は,Standard Taglibs を使用したJSPファイルです.

リスト1 JSTL によるプログラム例
<%@ page contentType="text/html; charset=EUC-JP"%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%> ← (1)
<html>
<head>
<title>Standard Taglibs Test</title>
</head>
<body>
<c:set var="x" value="10"/> ← (2)-1
<c:set var="y" value="20"/> ← (2)-2
加算結果:<c:out value="${x + y}"/> ← (3)
</body>
</html>

このプログラムは,変数xとyを設定し,その加算結果を出力するだけです. リスト1-(1)で,カスタムタグライブラリを使用す るための宣言を行っています.JSTLのcoreライブラ リを使用する場合,接頭辞はcを用います.表4 に, JSTLにおける接頭辞とURIの一覧を示します.

    表4 JSTL の接頭辞URI 一覧
    ライブラリ名接頭辞URI
    corechttp://java.sun.com/jstl/core
    formatfmthttp://java.sun.com/jstl/fmt
    sqlsqlhttp://java.sun.com/jstl/sql
    xmlxmlhttp://java.sun.com/jstl/xml
JSTLでは通常,タグの動的な属性を指定するため に,ELを使用します.(3)で,xとyの加算結果を出力 しています.この${から}に囲まれたプログラムがEL として評価されます.xとyは,ELにおける変数に相 当するもので,(2)-1,(2)-2の<c:set>タグで,値を設定 しています.
    <some:tag attr="Welcome ${user.lastName}${user.firstName}"/>
上記のように,タグの属性に複数の式を記述した り,文字列を含めることも可能です. JSTLでは,動的属性を${ }で囲まれたELを使用す るのではなく,JSP式(<% 〜 %>)を使用するための ライブラリも用意されています.このライブラリは, RTライブラリ(Request Timeライブラリ)と呼ばれ ており(RTライブラリを使用する場合のプログラム 例をリスト2に示します),接頭辞とuriに_rtを追加 します(リスト2-(1)).RTライブラリは,Java言語 をそのまま記述できること,ELより効率がよいこと が特徴です.なお本稿では,ELライブラリを中心に 扱います.

リスト2 RT ライブラリのプログラム例
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c_rt"%> ← (1)
<% String agent = request.getHeader("user-agent");%>
<c_rt:if test='<%= agent.indexOf("Gecko") >= 0 %>'/>
<c_rt:out value="<%= agent %>" />
</c_rt:if>

    表2 core タグライブラリの主なタグ
    タグ概要
    <c:set>変数に値を設定する
    <c:remove>変数を削除する
    <c:out>出力する
    <c:if>条件判断
    <c:choose>多重分岐.<c:when>,<c:otherwise>などのタグとともに使用する
    <c:forEach>反復要素や,反復回数を指定してループ
    <c:forTokens>反復要素を文字列で指定してループ
    <c:import>外部ファイルの取り込み
    <c:redirect>他のURLへリダイレクトする
    <c:url>URLを生成する
    <c:catch>例外処理

 << prev  ↑ JSTL index  next >>


このドキュメントに関するご意見、ご要望などはまで。


Copyright (C) 2003-2005 Visards, Inc. All Rights Reserved.