ヘッダーをスキップ

Oracle Containers for J2EE JSPタグ・ライブラリおよびユーティリティ・リファレンス
10g(10.1.3.1.0)

B31854-01
目次
目次
索引
索引

戻る 次へ

2 JavaServer Pages標準タグ・ライブラリのサポート

JavaServer Pages標準タグ・ライブラリ(JSTL)では、JSPページで頻繁に使用される機能の多くをカプセル化した豊富なタグのセットが提供されます。JSTLは、ページ作成者の作業を簡素化するという明確な目標の元に開発されました。JSTLによってJSPページでのJavaスクリプト要素のニーズが解消され、目標の達成に大きな役割を果しています。

JSTL 1.1に関する詳細は、次のサイトのSun社の仕様を参照してください。

http://java.sun.com/products/jsp/jstl/


注意

JSTLディストリビューションは、OC4J内のORACLE_HOME/j2ee/home/jsp/lib/taglibディレクトリにはインストールされないようになりました。現在、これらのライブラリは、ORACLE_HOME/j2ee/home/default-web-app/WEB-INF/libにインストールされます。 


次に、JSTL 1.1の主要な機能を示します。

JSTL 1.1がリリースされた目的は、主としてJSTLを現行のJSP 2.0仕様に準拠させるためであることに注意してください。主要な役割は、JSTL 1.0で提供されたパラレル・ライブラリ(式言語(EL)式を受け入れるライブラリと標準Java式を受け入れるライブラリ)を、両方のタイプの式で使用できる1つのライブラリ・セットと置き換えることです。EL式内で使用できる便利な式言語(EL)機能を含む新しいライブラリも追加されています。


注意

式言語(EL)は最初はJSTL 1.0で導入されましたが、現在はJSP 2.0仕様に含まれています。JSTL 1.1とELは、アプリケーション・データのアクセスと操作に必要なコードをさらに簡素化するために、引き続き多くの面で互いに補完し合っています。ELの詳細は、『Oracle Containers for J2EE JavaServer Pages開発者ガイド』を参照してください。  


JSTLの概要

次の各項では、JSTLの機能とOC4Jサポートの概要について説明します。

JSTLの理念

JSTLは、Javaなどのスクリプト言語に不慣れなJSPページ作成者を対象にしています。以前は、JSPページで動的データを処理するには、スクリプトレットを使用していました。JSTLでは、JSTLタグを使用すると、スクリプトレットが不要になります。

以前のバージョンのOC4J JSP製品を使用した経験のある読者であれば、JSTLとOracle JavaServer Pages Markup Language(JML)タグ・ライブラリの目的が似ていることがわかります。JMLタグ・ライブラリは、Oracle Application Server 10gリリース3(10.1.3)から正式に削除され、現在はサポートされていません。

JSTLタグのサマリー

JSTLは、実際には、それぞれが特定の機能を実装する5つのライブラリで構成されています。表2-1に、各ライブラリの標準TLD URIと接頭辞を示します。

表2-1    JSTLライブラリ 
ライブラリ  URI  接頭辞 

Core 

http://java.sun.com/jsp/jstl/core 

c: 

XML処理 

http://java.sun.com/jsp/jstl/xml 

x: 

SQLデータベース・アクセス 

http://java.sun.com/jsp/jstl/sql 

sql: 

I18N国際化と書式化 

http://java.sun.com/jsp/jstl/fmt 

fmt: 

EL機能 

http://java.sun.com/jsp/jstl/functions 

fn: 

表2-2に、機能グループに編成されたJSTLタグのサマリーを示します。各グループごとにJSTL標準のタグ接頭辞について説明しています。

表2-2    JavaServer Pages標準タグ・ライブラリのサマリー 
タグ・グループ  グループの説明  各タグ 

Core、ELサポート 

式の評価と現行のJspWriterオブジェクトへの結果の出力、スコープ変数の値やターゲット・オブジェクトのプロパティ値の設定、スコープ変数の削除、およびネストされた操作によってスローされるThrowableインスタンスの捕捉などを行うタグが含まれています。 

c:out
c:set
c:remove
c:catch 

Core、条件付き 

test属性によってtrueと評価されたボディ・コンテンツの評価および手動による相互に排他的な条件付き実行パスの指定を行うタグが含まれています。whenタグとotherwiseタグは、chooseタグとともに使用します。 

c:if
c:choose
c:when
c:otherwise 

Core、イテレータ 

ボディの実行をオブジェクトのコレクション間で(または指定した回数)反復し、指定のデリミタで区切られた一連のトークン間で反復するタグが含まれています。 

c:forEach
c:forTokens 

Core、URL関連 

URLベース・リソースのコンテンツのインポート、適切なリライティング・ルールを使用したURLの作成、HTTPリダイレクトのクライアントへの送信、およびリクエスト・パラメータのURLへの追加などを行うタグが含まれています。paramタグは、importタグ、urlタグおよびredirectタグのサブタグです。 

c:import
c:url
c:redirect
c:param 

XML、コア 

XML文書の解析、XPath式の評価と現行のJspWriterオブジェクトへの結果の出力、およびXPath式の評価とスコープ変数への結果の格納などを行うタグが含まれています。(XPathに関しては、この表の次にある「注意」を参照してください。) 

x:parse
x:out
x:set 

XML、フロー制御 

指定したXPath式の評価とその式でtrueと評価されたコンテンツのレンダリング、手動による相互に排他的な条件付き実行パスの指定、および指定したXPath式の評価と結果間でのボディ実行の反復などを行うタグが含まれます。whenタグとotherwiseタグは、chooseタグとともに使用します。 

x:if
x:choose
x:when
x:otherwise
x:forEach 

XML、変換 

XSLTスタイルシート変換の文書への適用および変換パラメータの設定を行うタグが含まれます。paramタグは、transformタグのサブタグです。 

x:transform
x:param 

SQL 

データベースの問合せ、データベースの更新(UPDATE/INSERT/DELETE)、問合せと更新用トランザクション・コンテキストの設定、スコープ変数またはデータ・ソース構成変数へのデータ・ソースのエクスポート、SQL文でのパラメータ・プレースホルダ(?)の値の設定、およびjava.util.Date型の場合におけるパラメータ・プレースホルダ値の設定などを行うタグが含まれます。paramタグとdateParamタグは、queryタグとupdateタグのサブタグです。 

sql:query
sql:update
sql:transaction
sql:setDataSource
sql:driver
sql:param
sql:dateParam 

I18N、国際化 

指定したロケールのロケール構成変数への格納、タグ内で使用するI18Nローカライゼーション・コンテキストの作成、タグ外で使用するローカライゼーション・コンテキストの作成と格納、リソース・バンドル内のローカル・メッセージの参照、およびリクエスト文字エンコーディングの設定などを行うタグが含まれます。paramタグをmessageタグとともに使用すると、messageタグのパラメータを置換できます。 

fmt:locale
fmt:bundle
fmt:message
fmt:param
fmt:requestEncoding 

I18N、書式化 

書式化や解析用タイムゾーンの指定、指定済タイムゾーンのスコープ変数またはタイムゾーン構成変数への格納、ロケールや特別なカスタマイズに対する数値の適切な書式化、書式化済数値の文字列表現の解析、ロケールまたは特別なカスタマイズに対する日付または時間の書式化、書式化済日付または時間の文字列表現の解析などを行うタグが含まれます。 

fmt:timeZone
fmt:setTimeZone
fmt:formatNumber
fmt:parseNumber
fmt:formatDate
fmt:parseDate 

EL機能、コレクションまたは文字列長 

Collectionのオブジェクト数またはStringの文字数を返す1つのタグが含まれます。このタグはEL式内で使用する必要があります。 

fn:length 

EL機能、文字列の操作 

文字列の大文字と小文字の変更、文字列のサブセットの取得、文字列内の文字の置換、文字列に別の文字列が含まれるかどうかのチェック、XML文字のエスケープ、および文字列の切捨てのためのタグが含まれます。これらのタグはEL式内で使用する必要があります。 

fn:contains
fn:containsIgnoreCase
fn:endsWith
fn:escapeXML
fn:indexOf
fn:join
fn:replace
fn:split
fn:startsWith
fn:substring
fn:substringAfter
fn:substringBefore
fn:toLowerCase
fn:toUpperCase
fn:trim 


注意

XML処理用のJSTLタグは、XPath(XMLパス)に関するW3C勧告に基づいています。XPathは、XML文書の各部分を指定および選択するための簡潔な表記規則を提供します。詳細は、次のWebサイトを参照してください。

http://www.w3.org/TR/xpath 


その他のJSTL機能の概要

この後の項ではその他のJSTLの機能について説明します。

スコープ変数

JSTLタグは、JSPのスコープ属性を使用してデータを使用可能にします。この属性はスコープ変数とも呼ばれ、スクリプト変数のかわりに使用されます。このようにデータを使用可能にできるJSTLタグには、その属性にvarおよびscopeが含まれ、次のように使用されます。

scope属性は、NESTED変数(常にpageスコープを持つ)には必要ありません。ただし、JSTLでの変数は、AT_END(終了タグからそのページの終わりまで使用可能)になります。

次の例では、コア・ライブラリ・イテレータ操作タグforEachと式言語サポート・タグoutを使用して、employeesコレクションの現行の項目を公開します。

<c:forEach var="employee" items="${customers}">
   The current employee is <c:out value="${customer}"/>
</c:forEach>

構成データとConfigクラス

JSTLには、スコープ変数を使用して特定スコープのJSP構成データを動的にオーバーライドする機能が含まれています。この操作を行うには、javax.servlet.jsp.jstl.core.Configクラスの機能を使用します。

JSP仕様によると、JSPページ・コンテキスト内に存在するすべてのスコープ(pagerequestsessionおよびapplication)は、単一の名前空間を形成する必要があります。つまり、スコープ変数の名前は、ページの実行ごとに一意である必要があります。

Configクラスには、構成パラメータ名を透過的に操作して、各スコープに独自の名前空間を設定する機能があります。この機能を効果的に使用すると、構成パラメータを特定のスコープに対してのみ設定できます。

詳細は、JSTL仕様1.1を参照してください。

JSTLの使用上の注意と将来の考慮事項

次の考慮事項に注意してください。


戻る 次へ
Oracle
Copyright © 2002, 2006 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引