JSP-標準タグライブラリ(JSTL)チュートリアル
この章では、JSPのさまざまなタグについて理解します。JavaServer Pages標準タグライブラリ(JSTL)は、多くのJSPアプリケーションに共通するコア機能をカプセル化する便利なJSPタグのコレクションです。
JSTLは、反復や条件、XMLドキュメントを操作するためのタグ、国際化タグ、SQLタグなどの一般的な構造タスクをサポートしています。また、既存のカスタムタグをJSTLタグと統合するためのフレームワークも提供します。
JSTLライブラリをインストールする
JSPタグの操作を開始するには、最初にJSTLライブラリをインストールする必要があります。Apache Tomcatコンテナを使用している場合は、次の2つの手順に従います-
Step 1− Apache Standard Taglibからバイナリディストリビューションをダウンロードし、圧縮ファイルを解凍します。
Step 2 −標準のTaglibを Jakarta Taglibs distribution、ディストリビューションの「lib」ディレクトリにあるJARファイルをアプリケーションの「lib」ディレクトリにコピーするだけです。 webapps\ROOT\WEB-INF\lib ディレクトリ。
ライブラリを使用するには、ライブラリを使用する各JSPの先頭に<taglib>ディレクティブを含める必要があります。
JSTLタグの分類
JSTLタグは、その機能に応じて、JSPページの作成時に使用できる次のJSTLタグライブラリグループに分類できます。
Core Tags
Formatting tags
SQL tags
XML tags
JSTL Functions
コアタグ
タグのコアグループは、最も一般的に使用されるJSTLタグです。以下は、JSPにJSTLコアライブラリを含めるための構文です。
<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
次の表に、コアJSTLタグを示します-
S.No. | タグと説明 |
---|---|
1 | <%= ...>と同様ですが、式用です。 |
2 | 式の評価結果を 'scope' |
3 | を削除します scoped variable (指定されている場合、特定のスコープから)。 |
4 | 任意のキャッチ Throwable それはその体で起こり、オプションでそれを露出させます。 |
5 | 指定された条件が真の場合に本体を評価する単純な条件付きタグ。 |
6 | 相互に排他的な条件付き操作のコンテキストを確立する単純な条件付きタグ。 <when> そして <otherwise>。 |
7 | のサブタグ <choose> その状態が次のように評価された場合、それはその体を含みます 'true'。 |
8 | のサブタグ <choose> それに続く <when> タグを付けて実行するのは、以前のすべての条件が 'false'。 |
9 | 絶対URLまたは相対URLを取得し、そのコンテンツをページ、文字列のいずれかに公開します。 'var'、またはのリーダー 'varReader'。 |
10 | 基本的な反復タグ。さまざまなコレクションタイプを受け入れ、サブセット化やその他の機能をサポートします。 |
11 | 提供されたデリメータで区切られたトークンを繰り返し処理します。 |
12 | 含むにパラメータを追加します 'import' タグのURL。 |
13 | 新しいURLにリダイレクトします。 |
14 | オプションのクエリパラメータを使用してURLを作成します |
タグのフォーマット
JSTLフォーマットタグは、国際化されたWebサイトのテキスト、日付、時刻、および数値をフォーマットおよび表示するために使用されます。以下は、JSPにフォーマットライブラリを含めるための構文です。
<%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fmt" %>
次の表に、JSTLタグのフォーマットを示します-
S.No. | タグと説明 |
---|---|
1 | 特定の精度または形式で数値をレンダリングすること。 |
2 | 数値、通貨、またはパーセンテージの文字列表現を解析します。 |
3 | 提供されたスタイルとパターンを使用して、日付や時刻をフォーマットします。 |
4 | 日付や時刻の文字列表現を解析します |
5 | タグ本体で使用されるリソースバンドルをロードします。 |
6 | 指定されたロケールをロケール構成変数に格納します。 |
7 | リソースバンドルをロードし、名前付きスコープ変数またはバンドル構成変数に格納します。 |
8 | 本体にネストされた時間のフォーマットまたは解析アクションのタイムゾーンを指定します。 |
9 | 指定されたタイムゾーンをタイムゾーン構成変数に格納します |
10 | 国際化されたメッセージを表示します。 |
11 | リクエスト文字エンコードを設定します |
SQLタグ
JSTL SQLタグライブラリは、次のようなリレーショナルデータベース(RDBMS)と対話するためのタグを提供します。 Oracle, mySQL、または Microsoft SQL Server。
以下は、JSPにJSTLSQLライブラリを含めるための構文です。
<%@ taglib prefix = "sql" uri = "http://java.sun.com/jsp/jstl/sql" %>
次の表に、SQLJSTLタグを示します-
S.No. | タグと説明 |
---|---|
1 | プロトタイピングにのみ適した単純なデータソースを作成します |
2 | 本体またはsql属性で定義されたSQLクエリを実行します。 |
3 | 本体またはsql属性で定義されたSQL更新を実行します。 |
4 | SQLステートメントのパラメーターを指定された値に設定します。 |
5 | SQLステートメントのパラメーターを指定されたjava.util.Date値に設定します。 |
6 | ネストされたデータベースアクション要素に共有接続を提供し、すべてのステートメントを1つのトランザクションとして実行するように設定します。 |
XMLタグ
JSTL XMLタグは、XMLドキュメントを作成および操作するJSP中心の方法を提供します。以下は、JSPにJSTLXMLライブラリを含めるための構文です。
JSTL XMLタグライブラリには、XMLデータを操作するためのカスタムタグがあります。これには、XMLの解析、XMLデータの変換、およびXPath式に基づくフロー制御が含まれます。
<%@ taglib prefix = "x"
uri = "http://java.sun.com/jsp/jstl/xml" %>
例を進める前に、次の2つのXMLおよびXPath関連ライブラリをにコピーする必要があります。 <Tomcat Installation Directory>\lib −
XercesImpl.jar −からダウンロード https://www.apache.org/dist/xerces/j/
xalan.jar −からダウンロード https://xml.apache.org/xalan-j/index.html
以下は、XMLJSTLタグのリストです-
S.No. | タグと説明 |
---|---|
1 | <%= ...>と同様ですが、XPath式用です。 |
2 | 属性またはタグ本体のいずれかで指定されたXMLデータを解析するために使用されます。 |
3 | 変数をXPath式の値に設定します。 |
4 | テストXPath式を評価し、それがtrueの場合、本体を処理します。テスト条件がfalseの場合、本文は無視されます。 |
5 | XMLドキュメント内のノードをループします。 |
6 | 相互に排他的な条件付き操作のコンテキストを確立する単純な条件付きタグ。 <when> そして <otherwise> タグ。 |
7 | のサブタグ <choose> その表現が「真」に評価される場合、それはその本体を含みます。 |
8 | のサブタグ <choose> それに続く <when> 以前のすべての条件が「false」と評価された場合にのみタグ付けして実行します。 |
9 | XMLドキュメントにXSL変換を適用します |
10 | と一緒に使用 transform XSLTスタイルシートにパラメータを設定するためのタグ |
JSTL関数
JSTLには多くの標準関数が含まれており、そのほとんどは一般的な文字列操作関数です。以下は、JSPにJSTL関数ライブラリを含めるための構文です。
<%@ taglib prefix = "fn"
uri = "http://java.sun.com/jsp/jstl/functions" %>
次の表に、さまざまなJSTL関数を示します。
S.No. | 機能と説明 |
---|---|
1 | fn:contains()
入力文字列に指定された部分文字列が含まれているかどうかをテストします。 |
2 | fn:containsIgnoreCase()
大文字と小文字を区別しない方法で、入力文字列に指定された部分文字列が含まれているかどうかをテストします。 |
3 | fn:endsWith()
入力文字列が指定されたサフィックスで終わるかどうかをテストします。 |
4 | fn:escapeXml()
XMLマークアップとして解釈できる文字をエスケープします。 |
5 | fn:indexOf()
指定された部分文字列が最初に出現する文字列を含むインデックスを返します。 |
6 | fn:join()
配列のすべての要素を文字列に結合します。 |
7 | fn:length()
コレクション内のアイテム数、または文字列内の文字数を返します。 |
8 | fn:replace()
入力文字列内のすべての出現箇所を指定された文字列に置き換えた結果の文字列を返します。 |
9 | fn:split()
文字列を部分文字列の配列に分割します。 |
10 | fn:startsWith()
入力文字列が指定されたプレフィックスで始まるかどうかをテストします。 |
11 | fn:substring()
文字列のサブセットを返します。 |
12 | fn:substringAfter()
特定の部分文字列に続く文字列のサブセットを返します。 |
13 | fn:substringBefore()
特定の部分文字列の前にある文字列のサブセットを返します。 |
14 | fn:toLowerCase()
文字列のすべての文字を小文字に変換します。 |
15 | fn:toUpperCase()
文字列のすべての文字を大文字に変換します。 |
16 | fn:trim()
文字列の両端から空白を削除します。 |