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