SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

GlassFishからアプローチするJava

GlassFishからアプローチするJava~入門編~
第3回「Webアプリケーションの作成 JSPの基礎を学ぶ」

JSPはWebアプリケーションのUIの基本

JSTLって何?

 JSTL(JavaServer Pages Standard Tag Library)はWebアプリケーションのプレゼンテーションで多用されるであろうアクションをあらかじめ提供することで、同じアクションを重複して開発することを回避し、また共通のアクションを用意することでJSPの可読性や生産性を高める役割や効果があります。

タグライブラリといえどもそれはJavaに他ならない

 タグライブラリは「JavaServer Pages Standard Tag Library Version 1.2」の「1.2 Multiple Tag Libraries」の言葉に従えば、JSP page内から使用される機能をカプセル化したアクションの集合です。アクションは先述の通り「サーバ側のJavaのロジックを呼び出すもの」です。つまり、JSPのタグに呼応したサーバ側のロジックの集まりをタグライブラリと呼びます。

 JSTL 1.2では5つのタグライブラリが用意されています。タグライブラリは似通った機能を有するものが集まったものです。表6がJSTLのタグライブラリの概要です。使用する場合はtaglibディレクティブでuri属性を使ってタグライブラリのuriを指定する必要があります。ただし、JSTLの場合、TLDやweb.xmlへの記述は不要です。以下に、JSTLのタグライブラリ概要を記載します。

Core(prefix:c)

 主にJSP自体の記述を簡単にするための機能が集められています(変数の設定・削除、例外の捕捉、制御ロジックなど)。またアクションで説明したインポートと同様な機能もあります。

  • 一般目的のアクション:<c:out>は変数を出力します。<c:set>と<c:remove>は変数の設定・削除をし、<c:catch>は例外を捕捉します。
  • 条件アクション:<c:if>、<c:choose>、<c:when>、<c:otherwise>はプログラム言語の条件文に相当するアクションですが、よりきめの細かい制御ができます。
  • イタレータアクション:<c:forEach>はJavaのfor文に相当する機能です。<c:forToken>は文字列を区切り文字により分割し、分割した文字列を順番に処理します。
  • URL関連アクション:<c:import>、<c:redirect>は外部ファイルのインポートやリダイレクトをURLベースで行います。従って、アプリケーション(コンテクスト)を超えたファイルのインポートが可能です。
  • The Java EE 5 Tutorial「Core Tag Library」

XML(prefix:x)

 XMLアクションはXMLコアアクション、XMLフロー制御アクション、XML変換アクションの3つのカテゴリに分かれます。XMLのアクションはXPath(文献1)が基礎を形成しています。

  • XMLコアアクション:<x:parse>はXMLを解析します。<x:out>はXPath式の評価結果を出力します。<x:set>はXPath式の評価結果を変数へ設定します。
  • XMLフロー制御アクション:Coreタグライブラリにも<c:if>などフローを制御するためのアクションがありますが、条件式にXPath式を使用します。<x:if select=XPath式>のように記述します。他にも<x:choose>、<x:when>、<x:otherwise>、<x:forEach>などCoreアクションと同じ機能を持つアクションが存在します。条件式がXPath式であることが特徴です。
  • XML変換アクション:<x:transform>はXSLT(文献1)シートを使用してXML文書を変換します。
  • The Java EE 5 Tutorial「XML Tag Library」

i18n(Internationalization)(prefix:fmt)

 文字コードのエンコーディング。数値や日付データなど文化や国により異なる表現形式に応じた出力など、国際化に関連した機能が集められています。

SQL(prefix:sql)

 JSP pageからデータベース操作できる機能が集められています。

Function(prefix:fn)

 主に文字列操作を行う機能が集められています。

おさらい

 今回はJSPの構文の要点を図1のJSPの構造に沿って説明しました。分かりづらい点や間違いやすい点のみを強調しています。詳しく知りたい方はJSP 1.2またはJSTL 1.2の仕様書を読んで確認してください。ただし、入門レベルには十分な説明であり、次回のWebアプリケーションの開発において、実際の使用方法を説明します。今回紹介した項目が出てきたら詳細に説明したいと考えています。今は言葉が頭に残っているくらいでも構いません。

 次回は、芋焼酎を扱うネットショップのサンプルアプリケーションを作成します。

参考文献

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
GlassFishからアプローチするJava連載記事一覧

もっと読む

この記事の著者

川久保 智晴(カワクボ トモハル)

haruプログラミング教室(https://haru-idea.jp/)主宰。COBOL、FORTRANで13年、Javaを中心としたWeb開発で11年。3つしか言語知らないのかというとそうでもなく、sed/awk、Perl、Python, PHP,  C#, JavaScriptなども一時期は業...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/4775 2010/02/17 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー