7

JSP カスタム タグ ライブラリと JSP 2 タグ ファイルの背後にある考え方を説明できる人はいますか?

それらは同じことを行うための異なる方法ですか?

それらはどのように比較されますか? それらの長所と短所は何ですか。どちらが優れていますか?

4

2 に答える 2

8

私は3つ未満のタグファイルですが、JSTLのそのリード開発者は、彼らが本当にそう言ったのなら、クラックを吸っています。非常に重要な理由の1つとして、すべてのタグライブラリタグをタグファイルタグとして書き直すことはできません。タグファイルでは次のことができません。

EVAL_BODY_INCLUDEを返します。

つまり、タグファイルの本文コンテンツには次の3つのオプションしかありません。

空:内部コンテンツはありません。<someTag />

スクリプトレス: JSP内部コンテンツはありません。<someTag> <p> hello world </ p> </ someTag>は問題ありませんが、<someTag> <p> <%= helloWorld.toString()%> </ p> </ someTag>

タグに依存: JSP内部コンテンツを含めることはできますが、そのように処理されることはありません。代わりに、適切と思われる方法で解析/レンダリングする必要があります

ただし、古いスタイルのタグライブラリタグを使用すると、次のようにできます。<body-content> JSP </ body-content>(tldファイル内)次に「returnEVAL_BODY_INCLUDE;」「doStartTag」から。これを行うと、すべてのJSPディレクティブは、ページの通常の部分であるかのように解析され、タグはそれらを適切なコンテンツでラップするだけです。

個人的には、私の親指のルールは次のとおりです。できる限りタグファイルを使用します。タグ内で動作するJSPディレクティブが必要ない場合は常に、JSPディレクティブは100万倍クリーンであり、プログラマー以外の人にとっても操作が簡単であるため、tldは必要ありません(別の名前空間に保持している場合はタグライブラリタグ)。

ただし、タグ内にJSPコンテンツが必要な場合、唯一のオプションはタグライブラリタグです。いつの日か、JSPの人々がタグファイルタグ内でJSPディレクティブ処理を行う方法をリリースし、古いクラスベースのタグを実際に放棄できるようになることを願っていますが、それまでは、タグファイルを使用してすべてのタグを実行しようとしないでください。 、ロジックの最後の部分ごとにカスタムタグを作成することにすぐになります(これが、JSPディレクティブを使用せずにロジックを実行する唯一の方法であるため)。

于 2008-11-13T19:32:00.350 に答える
6

カスタムタグの開発に関する問題

従来のカスタム タグには、Java プログラミング スキルが必要です。

最も単純なカスタム タグを除いて、すべてを記述するのは簡単ではありません。

サーブレットとは対照的に、JSP の目的は、マークアップ言語を使用して、動的コンテンツが埋め込まれたレイアウトを管理することです。

マークアップ言語に重点を置いたカスタム タグで複雑な Java コードを記述しなければならないことは、過去にさかのぼります。

新しいカスタム タグを実装するときに、JSP 式言語またはその他のカスタム タグを使用したい場合があります。

ソリューション JSP 2.0 タグ ファイル

  • タグ ファイルは、JSP 2.0 で導入された重要な新しい概念の 1 つです。
  • タグ ファイルを使用すると、カスタム タグをより簡単かつ迅速に開発できます。
  • タグ ファイルは、スクリプト要素を含む通常の JSP 構文を使用して開発され、他のカスタム タグと同様に使用されます。
  • 各カスタム タグは個別のタグ ファイルです。

タグファイルの違いは?

JSP 構文を使用して記述されています。

  • すべての JSP ディレクティブがタグ ファイルで許可されているわけではありません。
  • 新しいタグ ファイル固有のディレクティブ、アクション、および暗黙的なオブジェクトによってサポートされます。

.tagまたは.tagxサフィックスで識別されます。

機能を失うことなく、カスタム タグの開発者が簡単に開発できるようにすることを目的としています。

  • JSTL の主任開発者の 1 人は、時間があれば、タグ ファイルを使用してすべての JSTL を書き直すだろうとコメントしています。
于 2008-10-28T06:36:30.353 に答える