Facelets は実際に「プリコンパイル」が可能です。context パラメーターを使用して、Facelets の更新期間を制御できますjavax.faces.FACELETS_REFRESH_PERIOD
。-1
JSF に Facelets ファイルを再コンパイル/再解析せず、SAX でコンパイル/解析された XML ツリー全体 (XHTML 構成に基づく) を実際にキャッシュに保持するように設定するには、次のようにします。
<context-param>
<param-name>javax.faces.FACELETS_REFRESH_PERIOD</param-name>
<param-value>-1</param-value>
</context-param>
ただし、開発中にこの設定を使用しないでください。Facelets ファイルを編集するたびにサーバー全体を再起動する必要があります。Mojarra のデフォルト設定は2
(つまり、キャッシュは 2 秒ごとに更新されます) です。MyFaces には、 when が に設定されていないデフォルト設定が-1
ありjavax.faces.PROJECT_STAGE
ますDevelopment
。
FaceletsCacheFactory
必要に応じて、カスタムとを指定して Facelets キャッシュを制御できますFaceletsCache
。これは JSF 2.1 以降でのみ利用可能であるため、構成設定を機能faces-config.xml
させるには、適合する JSF 2.1を再宣言する必要があることに注意してください。<facelet-cache-factory>
さらに一歩進めると、XML ツリーに基づいて構築されたビュー (つまり、全体UIViewRoot
) も、理論的にはプールすることができます。MyFaces は現在、これを達成するためにすでに何らかの努力を行っています。 issue 3664も参照してください。私の同僚の Arjan Tijms も余暇に Mojarra のためにそれを見ています。