
第10回 JSP開発を効率化するTaglibs
小山博史
Ja-Jakarta Project
2003/9/19
Apache Jakartaプロジェクトのサブプロジェクトの1つに、Taglibsプロジェクトがあります。これは、JSPで利用可能なタグライブラリのオープンソースリポジトリとなることを目標として、利用性の高いタグライブラリの開発と公開を行うプロジェクトです。
ここで開発されているタグライブラリの1つに「Jakarta Taglibs - Standard Taglib(以下Standard
Tablib)」があります。これは、ユーザーによく利用される共通的な機能を提供するためのタグライブラリです。このような高い汎用性を求められるタグライブラリは、仕様が標準化されていた方が利用者は安心して使用できます。さらには普及の足掛かりにもなるでしょう。このような理由から、JSR-052として標準仕様の策定が行われました。その結果、JSP
Standard Tag Library(JSTL)という標準仕様が決まったのです。 Standard Taglibは、実はこのJSTLのリファレンス実装でもあるのです。すなわち、仕様の策定に当たっては、リファレンス実装も並行して公開され、そこからのフィードバックも仕様策定に反映されたというわけです(図1)。
![]() |
| 図1 JSTLと Standard Taglibの関係 |
JSPでは、HTMLを書くときに近い感覚でユーザーインターフェイスを作成することができます。その半面、条件分岐や繰り返しのためのタグをサポートしていないので、データベースから取り出したデータを一覧表で表示したり、同じフォーマットで繰り返し表示するといったことができません。しかし、JSTLを利用すれば、そのような表示のための処理の制御をタグベースで表現できるようになります。JSTLを使用した場合のデザイナーとプログラマとの分担例を図2に示します。
![]() |
| 図2 デザイナーとプログラマとの分担例 |
JSTLは、今回紹介するようにプロトタイプをJSPだけで作成したい場合などにも利用できます。ユーザーからのフィードバックを得るためには、サービスイメージや画面イメージを早めにユーザーに見せたいところです。JSTLを導入すれば、サーバ側の実装が完成しなくても、完成イメージをユーザーへプレゼンテーションできるようになります。
|
インストールとサンプルアプリケーションの起動 |
![]() |
| 図3 Jakarta Taglibs standard Taglibraries 1.0.3に含まれるファイル |
まず、ここより、standard Taglib 1.0.3のバイナリファイル(jakarta-taglibs-standard-1.0.3.zipまたはjakarta-taglibs-standard-1.0.3.tar.gz)をダウンロードします。アーカイブファイルを展開すると、右の図3のようにjakarta-taglibs/standard-1.0.3というディレクトリが作成されます。StandardTaglibをWebアプリケーションで利用するには、このディレクトリ配下のlibディレクトリとtldディレクトリに含まれるファイルを使用します。
standard Taglibには、standard-doc.warとstandard-examples.warというサンプルアプリケーションが同梱されています。これらのファイルは前述のjakarta-taglibs/standard-1.0.3ディレクトリに含まれています。standard-doc.warはStandard
Taglibのドキュメントアプリケーションですし、standard-examples.warは、各タグの使用方法を具体的に示すサンプルアプリケーションです。ただし、standard-examples.warで使用されているクラスファイルのソースコードは付いていません。WebアプリケーションにおいてStandard
Taglibを利用する方法の詳細を知るためには、Standard Taglib 1.0.3のソースコードファイルもダウンロードして、調べてみるのがよいでしょう。ここでは紙面の都合上、これらについての説明は省略します。
まず、$CATALINA_HOME/webappsに、standard-doc.warとstandard-examples.warとを配置し、Tomcatを起動します。次に、http://localhost:8080/standard-examples/にアクセスすると、画面1が表示されるはずです。表示されない場合は、Tomcatの設定を見直すなり、warファイルを手動で展開するなりして対応してください。
![]() |
|
画面1 Examples Web Applicationのトップページ (画面をクリックすると拡大します) |
トップページ内のExamplesに含まれる例の簡単な説明を表1に一覧しました。これを参考にしながら、興味のあるタグの動作を確認してください。英語が苦手な方は、The Ja-Jakarta ProjectのオフィシャルサイトTaglibsサブプロジェクト(http://www.jajakarta.org/taglibs/)にて、小川環氏が中心になって作成した日本語版が公開されています。そちらを利用するのもよいでしょう。
表1 Standard Taglib Exapmels| 項目 | 説明 |
| General Purpose Tags | 基本的なタグ |
| Conditional Tags | 条件選択タグ |
| Iterator Tags | 反復タグ |
| Import Tags | 入力タグ |
| I18N & Formatting Tags | 国際化と書式タグ |
| XML Tags | XMLタグ |
| SQL Tags | SQLタグ |
| Tag Library Validators | タグライブラリ妥当性検査 |
| Miscellaneous | そのほかもろもろ |
|
簡単なWebアプリケーションを設計する |
タグの動作確認を簡単にしたところで、早速簡単なWebアプリケーションを作成してみましょう。本稿では、よくWeb上で見掛ける「アンケート付きクイズページ」のひな形を作ることにしました。まずは設計について簡単な説明をします。作成するJSPファイルは以下の5本です。
(1)の画面が画面遷移を制御します。画面遷移の順番は、基本的には、(2)から順に(5)へ進むようにします。ページデザインはサンプルなので、できるだけシンプルにしてあります。アンケートの入力結果は、RDB(本稿ではPostgreSQLを使用)へ保存することにします。使用するデータベース名はdbq、テーブル名はtbl_qとします。テーブル設計を表2に示します。
表2 テーブル設計| 項目 | カラム名 | データ型 (PostgreSQL) |
データ型 (JDBC) |
データ型 |
オプション |
| ID番号 | no | INTEGER | INTEGER | int | PRIMARY KEY |
| VARCHAR | LONGVARCHAR | String | NOT NULL | ||
| 年齢 | age | INTEGER | INTEGER | int | |
| クイズの答 | answer | CHAR(1) | CHAR(1) | String |
参考までに、PostgreSQLでこのテーブルを作成するSQL文は、リスト1のようになります。
| リスト1 テーブル作成のためのSQL文 |
CREATE TABLE tbl_q ( |
| 1/2 |
|
INDEX |
||
| 第10回 JSP開発を効率化するTaglibs | ||
| Page1 インストールとサンプルアプケーションの起動 簡単なWebアプリケーションを設計する |
||
| Page2 JSP+JSTLによるWebアプリケーションの実装と配備 |
||
| 「現場に活かすJakarta Project」連載記事一覧 |
TechTargetジャパン
- Scalaのパッケージ、アクセス修飾子、オブジェクト継承 (2012/5/22)
インポート、パッケージオブジェクト、抽象クラス/抽象メソッド、オーバーライド、final、シールドクラスなども - 基幹系システムでCloud SQLは使えるか試してみた (2012/5/17)
サンプルとしてMRPシステムを作成して動かし、「再帰呼び出し」などのパフォーマンスを測定して検証してみます - アジャイル管理ツール9選+Pivotal Tracker入門 (2012/5/14)
群雄割拠のアジャイルプロジェクト管理ツールを9つ紹介し、特に注目を集めているPivotal Trackerの基本的な使い方を解説します - サーバサイドJSやJavaでWebアプリが作れるXPages (2012/5/11)
Notes/Dominoの資産をサーバサイドJavaScriptやJavaで操作し、HTMLやJavaScript、CSSをUIにできる技術を紹介
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -








