TOPサーバ構築・運用> 2. 定型処理をプログラムレスで実現する「アクションタグ」
はじめてのサーバサイドJava
はじめてのサーバサイドJava

第5回:JSP&サーブレット〜JSP基本編〜

著者:山田 祥寛   2006/4/24
前のページ  1  2
2. 定型処理をプログラムレスで実現する「アクションタグ」

   アクションタグは、タグ形式で記述可能な命令の一種です。アクションタグを利用することで、変数の設定や条件分岐、繰り返し処理など、アプリケーション構築に欠かせない定型処理をプログラムレスで実現することができます。

   JSP 2.0においてはこのアクションタグと(後述する)式言語を組み合わせて、動的なコードを記述するのが一般的なスタイルです。アクションタグと式言語とを組み合わせることで、必ずしもJavaに精通していない人間でもJSPページを構築することが可能になります。

   しかし、アクションタグは、標準で利用可能なものがいくつかあるものの、その数はそれほど多くありません。そのため、アクションタグを駆使したコーディングを行う場合は、先にでも紹介したJSTL(JSP Standard TagLibrary)の導入が必須となります。JSTLは標準化されたアクションタグのライブラリ集で、表1のような機能があります。

分類 概要 @taglibディレクティヴの設定
Core 変数の設定や条件分岐、繰り返し処理などの基本処理を実現 <%@ taglib prefix="c" uri=
"http://java.sun.com/jsp/jstl/core" %>
Database データベースの検索/更新を実現 <%@ taglib prefix="sql" uri=
"http://java.sun.com/jsp/jstl/sql" %>
Formatting(I18n) 数値/日付データの整形や国際化対応を実現 <%@ taglib prefix="fmt"uri=
"http://java.sun.com/jsp/jstl/fmt" %>
XML XMLデータの解析や抽出、XSLT変換の実現 <%@ taglib prefix="x" uri=
"http://java.sun.com/jstl/xml" %>
Function 文字列の加工や情報の取得を実現 <%@ taglib prefix="fn" uri=
"http://java.sun.com/jsp/jstl/functions" %>

表1:JSTL 1.1で利用可能なタグライブラリ

   JSTLを利用するには、あらかじめ@taglibディレクティヴでタグライブラリを宣言しておく必要があります(リスト1の2)。@taglibディレクティヴの記法を表1にまとめてありますが、現時点では使用するタグライブラリごとに決まっているおまじないという程度の認識で構いません。ただし、@taglibディレクティヴの宣言がないと、コンテナはアクションタグを認識することができませんので、注意してください。

   リスト1の3で使用しているタグは、JSTL Coreタグライブラリに含まれるタグの1つで、var属性で指定された変数に、value属性で指定された値をセットします。一見、タグの記法はHTMLとよく似ていますが、終了タグを持たない開始タグの最後は「/>」で閉じなければならないなど、厳密にはXML(eXtensible Markup Language)の記法に則っています(注4)。

※注4: XMLの詳細については本稿では割愛しますので、専門の書籍を参考にしてください。

   なお、Coreタグライブラリで提供されている主なタグを表2にあげておきます。「こんなものがあるんだ」という程度で構いませんので、軽くながめておいてください。

タグ 概要
<c:set> 変数を設定
<c:if> 単純分岐を表現
<c:choose> 多岐分岐を表現
<c:forEach> items属性コレクションの内容を順に出力
<c:import> url属性で指定されたページをインポート
<c:redirect> url属性で指定されたページにリダイレクト

表2:Coreタグライブラリに含まれる主なタグ


3. 動的なデータ出力を担当する「式言語」

   JSP 2.0で、アクションタグと並んで動的な処理を記述する役割を担っているのが式言語(ExpressionLanguage)です。式言語はJavaによく似た言語ですが、JavaScript (ECMAScript)とXPathをベースとした、より簡易な構文を提供します。Javaとは次の点が異なっています。

  • 柔軟な式の記述が可能
  • データ型の制約が緩い
  • 出力に特化した言語であるため構文がシンプル

表3:Javaとの相違点

   などの特徴を持ち、Java開発者でなくても(たとえばデザイナーでも)容易に習得できるのが魅力です。

   JSP 1.2までは、動的なコードを記述するのにJava言語をベースとしたスクリプトレット(<%〜%>)や式(Expression)で使用するのが一般的でしたが、JSP 2.0以降は式言語を利用することを強くお勧めします。

   式言語では、${ }で囲まれた中身を解釈した結果を、クライアント側に返します。たとえば、リスト1の4なら、タグであらかじめセットしておいた変数msgの内容を出力しているというわけです。

前のページ  1  2


WINGSプロジェクト  山田 祥寛
著者プロフィール
有限会社WINGSプロジェクト   山田 祥寛
Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト(http://www.wings.msn.to/)」の代表。主な著書に「10日でおぼえる入門教室シリーズ(Jakarta・JSP/サーブレット・PHP・XML)」(以上、翔泳社)、「書き込み式 SQLのドリル」(ソシム)など。最近ではIT関連技術の取材、講演まで広くを手がける毎日。

INDEX
第5回:JSP&サーブレット〜JSP基本編〜
  はじめに
2. 定型処理をプログラムレスで実現する「アクションタグ」