【发布时间】:2015-07-22 07:43:33
【问题描述】:
是否可以告诉 Mojarra 2.2 在生成的 html 页面中呈现哪个 DocType?
它似乎总是呈现以下 HTML5 Doctype:
<!DOCTYPE html>
在我们的 facelet 模板中,我们使用以下 DocType 声明,我们希望将其保留在生成的 HTML 中:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
模板:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<h:body>
<ui:insert name="content">Will be replaced</ui:insert>
</h:body>
</html>
内容:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
template="/templates/standalone.xhtml">
<ui:define name="content">
<h:panelGroup>
Foo
</h:panelGroup>
</ui:define>
</ui:composition>
结果:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><body>
Foo
</body>
</html>
我在 Mojarra 2.2.7 和 2.2.12 中使用 GlassFish 4.1 进行了尝试。
【问题讨论】:
-
这不是默认行为。因此,如果您告诉确切的 Mojarra 版本,在问题中包含一个单文件 MVCE(即存在相当多的歧义,因为您在那里说“模板”),和/或同时尝试当前的最新版本( 2.2.12).
-
我添加了一个示例并使用 Mojarra 2.2.12 进行了尝试,结果相同。
-
我复制了它。这确实不是故意的行为。