我正在经历一种奇怪的行为(至少在我看来)。
当我从包含包含的模板发布帖子时,不知何故缺少 DOCTYPE 和 html-tag。
假设我在 home1.xhtml 上执行 GET,它使用包含 widget.xhtml 的 template1.xhtml。现在我在 home2.xhtml 上做一个 POST。现在共鸣缺少 DOCTYPE 和 html-tag。
如果我
直接在 home2.xhtml 上执行 GET 或
用包含的内容替换 template1.xhtml 中的包含并执行 POST
DOCTYPE 和 html-tag 按预期在响应中。
home1.xhtml:
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
template="template1.xhtml">
<ui:define name="content">
</ui:define>
</ui:composition>
模板1.xhtml:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets" >
<h:head>
</h:head>
<h:body>
Called with GET
<ui:include src="widget.xhtml" />
<h:form>
<h:commandLink action="#{homeBean2.show}" value="POST" />
</h:form>
</h:body>
</html>
wigdet.xhtml:
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html" >
<h:form id="someForm">
</h:form>
</ui:composition>
home2.xhtml:
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
template="template2.xhtml">
<ui:define name="content">
POST 1
</ui:define>
</ui:composition>
模板2.xhtml:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets" >
<h:head>
</h:head>
<h:body>
template 2
</h:body>
</html>
如何让 DOCTYPE 和 html-tag 显示在呈现的页面中?
任何提示我在这里缺少什么?
强尼