JSP の .jspf ファイルとは何ですか? 私が知っているように、コンパイラはコンパイルする .jsp ファイルを探しますが、.jspf ファイルはどのようにコンパイルされるのでしょうか?
5 に答える
他の人が指摘したように、.jspf ファイルは JSP フラグメントです。これらは、別の JSP ファイルに静的に含まれるように設計されており、独自にコンパイルされることはありません。
<%@include file="/WEB-INF/jspf/example.jspf" %>
この例は/WEB-INF/jspf
ディレクトリからのものであることに注意してください。これは、Web アプリケーションの外部からはアクセスできないことを意味します。それを取得できる URL を作成する方法はありません。それらを「通常の」JSP ファイルと同じディレクトリに置くと、そのような URL を作成できます。たとえば、Tomcat はページをテキスト ドキュメントとして取得します。ただし、フロントエンド Web サーバーはこれらの URL をブロックできます。
私は、大きな JSP ページをリファクタリングする最初のステップとして、JSPF ファイルが好きです。それらは静的にインクルードされるため、スクリプトや変数を用意しなくてもファイルの小さなチャンクを抽出でき、ページのメンテナンスがいくらか容易になります (強調したいのは、これが最初のステップであるということです。動的インクルードと taglibs は通常、より良い長期的な解決策)。リファクタリングするとき、私はフラグメントを親ファイルの近くに保つべきだと信じています。これは、URL をブロックするための Web サーバーが役立つ場合です。
JSP フラグメントは、サーバー側のインクルードと比較できます。これらのフラグメントは単独ではコンパイルされませんが、含まれているページと一緒にコンパイルされます。ユーザーの好みに基づいて異なるページを表示する必要がある場合は、jspf を選択します。
内容: .jspf ファイルは、通常、include ディレクティブを介して .jsp ファイルに含まれるファイルです。これらのファイル自体は完全な JSP ではないため、「f」は「フラグメント」を表します。
コンパイル方法: .jspf は jsp のフラグメントであるため、完全でコンパイル可能なソースではない可能性があるため、ほとんどの場合、それらを参照する別の完全なソースから独立してコンパイルすることはできません。
出典: IBM インフォセンター
IBM は、.jspf は JSP フラグメント用であると述べています。フラグメントは完全でコンパイル可能なソースではない可能性があるため、フラグメントを参照する別の完全なソースとは独立してコンパイルできない可能性があります。
これらは、 Sun の開発者向けリソースで同じコンテキスト (JSP フラグメントの命名規則) で言及されています。
多くの Web フレームワークでは、小さな共有ビューとページからビューとページを組み立てることができます。JSP を使用すると、これらの小さな断片はフラグメントと呼ばれます。名前が示すように、それらは必ずしもより大きなコンテキストがない完全な表現ではありません。
他の言語やフレームワークには、同等の概念を表す独自の用語があります。たとえば、Ruby on Rails では、パーシャルと呼ばれます。