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チェック

2. JSTL登場の背景
Apache Jakartaプロジェクト では,現在Tomcat 5.0の開発が進められています.Tomcat 4.xは,サー ブレットスペックは2.3,JSPスペックは1.2に対応し たものでしたが,Tomcat 5.0ではサーブレットは2.4, JSPは2.0に対応するものとなる予定です.サーブレッ ト環境は,次版2.4では大きな変更が加えられません. サーバサイドの技術としてのサーブレットはすでに成 熟しつつあり,機能拡張における関心の中心は,サー ブレット上で動作するStruts やPortletといったさま ざまなフレームワークに移行しています.一方,サー バサイドの技術でも,プレゼンテーションに関する技 術であるJSPは,今回ご紹介するJSTLを中心に大き な仕様拡張が行われる予定です.
JSPは,当初HTMLの出力にJavaのプログラムを埋 め込むための技術として登場しました.これにより, サーブレット内でHTMLを直接生成するのに比べ,格 段に柔軟なプレゼンテーションロジックを作成するこ とができるようになりました.しかし,JSPファイル に直接Javaのプログラムを埋め込むことは,デザイナ とプログラマの作業分担を複雑にし,プログラムや JSPファイルの再利用性や保守性を低下させるなどの 問題がありました.
そのため,プレゼンテーションのためのプログラム をJSPファイルから分離し,JSPファイル内にJavaプ ログラムが直接記述されること排除するため,カスタ ムタグが導入されました.これが,現在のJSP 1.2の 状況です.
JSPには,実際には比較的早い段階から,カスタム タグを作成する手段が提供されていました.しかし当 初は,このカスタムタグを作成するためのAPIに繰り 返し変更が加えられたため,商用レベルのシステムに カスタムタグを採用するには困難な面がありました. しかし,JSP 1.2ではAPIも安定し,最近では多くの商 用サーブレットエンジンに,各社独自のテンプレート ライブラリがバンドルされるようになってきています. 各社が独自のテンプレートライブラリを提供する一 方で,このライブラリに共通に必要となる 機能があることも判明しています.たとえ ば,データベースの検索結果を一覧で出 力するような処理はWebアプリケーショ ンにおける典型的な処理ですが,このよう な処理を行うためには,プレゼンテーショ ンロジック内で,CollectionなどのJavaオ ブジェクトの操作や,反復・条件分岐な どの制御構造が必要となります.このた め,これらプレゼンテーションロジックの 実装に頻繁に使用する機能を共通化し,標 準的に使えるテンプレートライブラリを策 定する作業がJCPでJSR 52 として行われ ています.これが,JSTLです.そしてこ のJSTLをJSPに取り込んだ仕様が, JSR 152に よるJSP 2.0となります.JSTLでは,表1に示す4つのライブラリが標準化 されています.

表1 JSTL で標準化されたライブラリ
ライブラリ名概要
core変数代入,反復,条件分岐などを実現する基本ライブラリ
format国際化に対応したテキスト,日時,数値などをフォーマット
sqlSQLデータベースにアクセスするためのライブラリ.検索,更新,トランザクション処理などをサポート
xmlXML文書に対する,XPathを用いた操作やXSLTによる変換などを可能にするライブラリ


JSTLを理解する上で,最も重要なのが coreライブラリです.coreライブラリは, プレゼンテーションロジックを実装するた めの基本となるライブラリで,オブジェクトの操作, 条件判断や分岐,反復などの機能を提供します.表2 にcoreライブラリが提供するタグの一覧を示します. このcoreライブラリと後で説明するEL(Expression Language:式言語)とを組み合わせて,プレゼンテ ーションの基本ロジックを実現します.

表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.