jsp taglibとjspページを含めることの基本的な違いは何ですか?
-
02-07-2019 - |
質問
iには、いくつかのhtmlを生成する共通の要素(コンポーネント)がいくつかあります。私のオプションはtaglibを作成するか、単にそのロジックをjspページに入れてjspを含めるようです。
違いは何ですか?ポジティブvsネガティブ?
解決
通常、taglibを使用する場合:
- _jspService内からヘルパーメソッドを記述して呼び出します
- ヘルパーメソッド内でタグクラスのインスタンスが作成され、標準メソッドが呼び出されます(setParent()、doStartTag()、doEndTag()など)
これにより、すべてのコードが同じリソース内に保持されるため(要求は別のコンポーネントに渡されません)、ループ動作を組み込み、現在のページの他のコンポーネントにアクセスできます。
タグライブラリの学習にはオーバーヘッドがあります。しかし、最初のタグが機能するようになったら、すべてが下り坂になります。また、最終的な結果は、開発者以外でも理解しやすくなります(タグに適切な名前を選択した場合)。
他のヒント
Taglibsを使用すると、ドキュメント化できる(入力された)パラメーターを定義できます。また、taglibはオブジェクトツリー内の位置を認識できるため、異なるコンテキストで異なる動作をします。または、特定のテンプレートを繰り返し呼び出して、反復子またはステートメント構造を作成します。
taglibが必ずしもJavaで書かれている必要はないことを知っていますか? JSPでtaglibを作成できるtagfilesという概念もあります。多くの場合、フラットなコンポーネントにより適しています...インクルードに非常に近い。
タグ(使いやすいJSPのようなタグファイルメカニズムを含む)は、厳密に型指定された名前付きパラメーターでの呼び出しをサポートしています。
別の信じられないほど便利で、驚くほどよく見落とされるJSPタグの機能は、 JspFragment
属性タイプです。これにより、JSPコードのチャンクをパラメーターとして、おそらく繰り返し呼び出されるタグに渡すことができます。
これらの強力なパラメーター化機能の欠如が含まれています。
taglibを使用すると、パラメーターの定義と処理が簡単になりますが、パラメーターの開発にはかなりのオーバーヘッドがあります。インクルードは単純ですが、強力ではありません。多くはあなたのスタイルに依存します。
私の経験では、人々はタブライブラリの作成を学ぶのに時間をかけたくないので、一般的にインクルードを使用します。公正な混乱につながる。チームが小さく、インクルードが複雑すぎない限り、それほど悪くはありません。しかし、それはコード臭です。