私は奇妙な行動を経験しています(少なくとも私の目には)。
インクルードのあるテンプレートから投稿すると、どういうわけか DOCTYPE と html-tag が欠落しています。
widget.xhtml が含まれている template1.xhtml を使用する home1.xhtml で GET を実行するとします。次に、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>
template1.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>
ウィジット.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>
template2.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 を取得するにはどうすればよいですか?
私がここで見逃しているヒントはありますか?
ジョニー