1

我正在经历一种奇怪的行为(至少在我看来)。

当我从包含包含的模板发布帖子时,不知何故缺少 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 显示在呈现的页面中?

任何提示我在这里缺少什么?

强尼

4

1 回答 1

2

它看起来像一个错误。请参阅http://java.net/jira/browse/JAVASERVERFACES-2453

于 2012-07-10T09:18:19.967 回答