JSP構文要素の概要
最初に、物事をより明確にするために、JSP構文要素の概要を次に示します。
- ディレクティブ:これらは、JSPページ全体に関する情報を伝えます。
- スクリプト要素:これらは、宣言、式、スクリプトレット、コメントなどのJavaコーディング要素です。
- オブジェクトとスコープ:JSPオブジェクトは明示的または暗黙的に作成でき、JSPページやセッションのどこからでも、特定のスコープ内でアクセスできます。
- アクション:これらは、オブジェクトを作成するか、JSP応答(またはその両方)の出力ストリームに影響を与えます。
JSPにコンテンツを含める方法
JSPファイルのコンテンツを再利用するには、いくつかのメカニズムがあります。
次のJSPのコンテンツを含むように4つのメカニズムはとして分類することができ、直接再利用:
(第3の機構のために引用する「ヘッドまずサーブレットおよびJSP」)
1)include ディレクティブ:
<%@ include file="header.html" %>
Static:翻訳時にファイル属性の値から現在のページにコンテンツを追加します。このディレクティブは元々、HTMLヘッダーなどの静的レイアウトテンプレートを対象としています。
2)<jsp:include>
標準アクション:
<jsp:include page="header.jsp" />
動的:リクエスト時に、ページ属性の値から現在のページにコンテンツを追加します。JSPからの動的コンテンツを対象としています。
3)<c:import>
JSTLタグ:
<c:import url=”http://www.example.com/foo/bar.html” />
動的:リクエスト時に、URL属性の値から現在のページにコンテンツを追加します。これはとよく似ていますが
<jsp:include>
、より強力で柔軟です。他の2つのインクルードとは異なり、<c:import>
URLはWebコンテナの外部からでもかまいません。
4)前奏曲とコーダ:
静的:プレリュードとコーダは、ページの最初と最後にのみ適用できます。Webアプリケーションのweb.xmlデプロイメント記述子の要素内におよび要素をそれぞれ
追加することにより、JSPページのグループのプレリュード(ヘッダーとも呼ばれる)とコーダ(フッター
とも呼ばれる)を
暗黙的に含めることができます。詳細はこちら:
• JSPの最初と最後での暗黙的インクルードの
設定• 暗黙的インクルードの定義<include-prelude>
<include-coda>
<jsp-property-group>
タグファイルは、コンテンツを再利用する間接的な方法であり、再利用可能なコンテンツをカプセル化する方法です。タグファイルはとして再利用可能であるJSPコードの断片を含むソースファイルであるカスタムタグを。
インクルードとタグファイルの目的が異なります。
タグファイル(JSP 2.0で導入された概念)は、カスタムタグを作成するためのオプションの1つです。これは、カスタムタグを作成するより速くて簡単な方法です。
カスタムタグは、タグ拡張とも呼ばれ、他のJavaコンポーネントによって提供されるカスタムロジックと出力をJSPページに挿入できるようにするJSP要素です。カスタムタグを介して提供されるロジックは、タグハンドラと呼ばれるJavaオブジェクトによって実装されます。
カスタムタグで実行できるタスクの例としては、暗黙的なオブジェクトの操作、フォームの処理、データベースや他のエンタープライズサービス(電子メールやディレクトリなど)へのアクセス、フロー制御の実装などがあります。
あなたの編集について
多分あなたの例(あなたのEdit)では、直接インクルードとタグファイルの使用に違いはありません。ただし、カスタムタグには豊富な機能セットがあります。彼らはできる
呼び出しページから渡される属性を使用してカスタマイズされます。
変数を呼び出しページに戻します。
JSPページで使用可能なすべてのオブジェクトにアクセスします。
互いに通信します。JavaBeansコンポーネントを作成して初期化し、そのBeanを参照するパブリックEL変数を1つのタグで作成してから、そのBeanを別のタグで使用できます。
相互にネストされ、プライベート変数を使用して通信します。
「Pro JSP 2」:JSPカスタムタグの理解からも読んでください。
有用な読書。
結論
各タスクに適切なツールを使用します。
使用タグファイルの作成の迅速かつ簡単な方法として、カスタムタグあなたが助けることができる再利用可能なコンテンツをカプセル化します。
JSPに含まれるコンテンツについて(ここからの引用):
- ファイルがほとんど変更されない場合は、includeディレクティブを使用します。これは最速のメカニズムです。コンテナが変更を自動的に検出しない場合は、メインページのクラスファイルを削除することで、変更を強制的に有効にすることができます。
- includeアクションは、頻繁に変更されるコンテンツに対してのみ使用してください。また、メインページが要求されるまで、どのページを含めるかを決定できない場合にのみ使用してください。