デフォルトでは、Facelets はコンポジション (インクルード ファイルと複合コンポーネント) とタグ ファイルからのみ削除します。マスター テンプレートからは削除されません。自分で取り除くだけです。HTML を作成するときは、XML プロローグをまったく使用しないでください。
XML プロローグがマスター テンプレートから削除されるかどうかは、JSF 2.2 仕様<facelets-processing>
の付録 1.1.1.1 で指定されています。この付録では、 の要素の構成が説明されていますfaces-config.xml
。XML プロローグは「処理命令」として記述されます。この表では、テンプレートが XML または JSPX ビューとして処理されるときにのみ削除 (消費) されることがわかります。
1.1.1.1facelets-processing
要素
この<facelets-processing>
要素は、Facelets VDL ファイルの処理に影響を与えるために使用されます。したがって、この設定は、およびエントリを介してランタイムに指定されているように、FaceletsViewDeclarationLanguage
実装に到達する要求にのみ適用されます。この仕様では、Facelets ファイルの 3 つの処理モード (Facelets XHTML 構文、XML ビュー構文、および Facelets JSPX 構文) が定義されています。この最後の構文は、すでに JSP ドキュメント構文 (JSPX 構文とも呼ばれます) を使用しているアプリケーションの Facelets への移行を容易にすることを目的としています。これら 3 つのモードのそれぞれにおけるファイルの処理への影響を次の表に示します。javax.faces.FACELETS_VIEW_MAPPINGS
javax.faces.DEFAULT_SUFFIX
<context-param>
Valid <process-as> values and their implications on the processing of Facelets.
-----------------------------------------------------------------------------------------
<process-as> <process-as> <process-as> <process-as>
html5</process-as> xhtml</process-as> xml</process-as> jspx</process-as>
HTML 5 (default) Facelets XHTML XML View Facelets JSPX
-----------------------------------------------------------------------------------------
XML Doctype Simplified to passed through consumed consumed
<!DOCTYPE html>
XML passed through passed through consumed consumed
declaration
Processing passed through passed through consumed consumed
instructions
CDATA passed through passed through consumed consumed
section
Escaping of escaped escaped escaped not escaped
inline text
XML passed through passed through consumed consumed
Comments
前の表で、「パススルー」とは、コンテンツが変更されずにユーザー エージェントに渡されることを意味します。「消費」とは、コンテンツがサーバー上でサイレントに消費されることを意味します。CDATA セクションの場合、開始タグと終了タグを使用する必要がある場合でも、CDATA セクション自体の内容が渡されることに注意してください。「エスケープされた」とは、応答内の機密コンテンツが自動的にエスケープされることを意味します。たとえば、に&
なります。&
「エスケープされていない」とは、そのようなコンテンツがエスケープされていないことを意味します。
つまり、HTML5/XHTML を作成している場合は、自分で削除する必要があります。実際には、より適切な言い回しがあります。HTML5 および XHTML ページに XML プロローグを自分で含めるべきではありません。これは必須ではないからです。XML および JSPX ページでのみ必要です (したがって、Facelets は自動的に削除します)。
以下も参照してください。
具体的な問題とは関係ありませんが、リクエスト URL から独立する<h:outputStylesheet>
のではなく、使用する必要があります。<link rel="stylesheet">
<h:outputStylesheet name="css/default.css" />
<h:outputStylesheet name="css/cssLayout.css" />
以下も参照してください。