Ответ 1
Facelets по умолчанию удаляет его только из композиций (включая файлы и составные компоненты) и файлы тегов. Он не удалит его из шаблона мастера. Просто удалите его самостоятельно. Вы не должны использовать пролог XML вообще при разработке HTML.
Будет ли пролог XML удаляться из основного шаблона, указан в приложении 1.1.1.1 спецификация JSF 2.2, в которой описывается конфигурация <facelets-processing>
в faces-config.xml
. Пролог XML описывается как "инструкции по обработке". В таблице вы увидите, что она удаляется (потребляется) только при обработке шаблона в виде представления XML или JSPX.
1.1.1.1 Элемент
facelets-processing
Элемент
<facelets-processing>
используется для обработки файлов VDL Facelets. Поэтому этот параметр применяется только к тем запросам, которые достигают реализации FaceletsViewDeclarationLanguage
, как указано в время выполнения черезjavax.faces.FACELETS_VIEW_MAPPINGS
иjavax.faces.DEFAULT_SUFFIX
<context-param>
. Спецификация определяет три режима обработки файлов Facelets: Facelets XHTML синтаксис, синтаксис XML-представления и синтаксис Facelets JSPX. Этот последний синтаксис предназначен для облегчения перехода на Facelets для приложения, уже использующие синтаксис документа JSP (также известный как синтаксис JSPX). Влияние на обработку файлов в каждом из этих трех режимов указывается в следующей таблице.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, вам нужно удалить его самостоятельно. Лучшая формулировка на самом деле: вы не должны включать сам пролог XML на страницы HTML5 и XHTML, поскольку это не требуется; это требуется только на страницах XML и JSPX (и, таким образом, Facelets автоматически удалит его).
См. также:
- Поддержка JavaServer Faces 2.2 и HTML5, почему XHTML все еще используется
- Можно ли использовать JSF + Facelets с HTML 4/5?
Несвязанный к конкретной проблеме, вы должны использовать <h:outputStylesheet>
вместо <link rel="stylesheet">
, чтобы быть независимым от URL-адреса запроса.
<h:outputStylesheet name="css/default.css" />
<h:outputStylesheet name="css/cssLayout.css" />