我使用Facelets将JSF 1.2从JSP转移到JSF 2.1。
我使用oracle ADF Faces作为组件库。
我的主页面布局不再适用于Facelets。
这是我的布局:
<af:form id="mainForm">
<af:decorativeBox theme="medium" styleClass="AFVisualRoot">
<f:facet name="center">
<!-- Main page -->
<af:panelStretchLayout topHeight="35" bottomHeight="20" >
<!-- Top menu -->
<f:facet name="top">
<af:panelStretchLayout endWidth="255" startWidth="100%">
<f:facet name="end">
</f:facet>
<f:facet name="start">
</f:facet>
</af:panelStretchLayout>
</f:facet>
<!-- Page footer -->
<f:facet name="bottom">
<af:region id="footerRegion" showHeader="never"
value="#{main.footerModel}" />
</f:facet>
<!-- Page body -->
<f:facet name="center">
<af:panelSplitter orientation="horizontal"
splitterPosition="450">
<f:facet name="first">
<af:region id="browserRegion" showHeader="never"
value="#{main.browserModel}" />
</f:facet>
<f:facet name="second">
<af:region id="contentRegion" showHeader="never"
value="#{main.contentModel}" />
</f:facet>
</af:panelSplitter>
</f:facet>
</af:panelStretchLayout>
</f:facet>
</af:decorativeBox>
</af:form>
正如在documentation中所说的那样,装饰框的中心方面“这个方面不支持facelets中的多个构面组件”
如果我还想使用Facelets,如何进行页面布局并仍然可以从decorativeBox中受益?
更新:
我的问题来自于使用<ui:include>
内部方面:
<!-- Top menu -->
<f:facet name="top">
<af:panelStretchLayout endWidth="255" startWidth="100%">
<f:facet name="end">
</f:facet>
<f:facet name="start">
<ui:include src="/components/menu.xhtml" />
</f:facet>
</af:panelStretchLayout>
</f:facet>
这是menu.xhtml的一部分:
<?xml version='1.0' encoding='UTF-8'?>
<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"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:trh="http://myfaces.apache.org/trinidad/html"
xmlns:tr="http://myfaces.apache.org/trinidad"
xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
xmlns:afh="http://myfaces.apache.org/trinidad/html">
<af:menuBar id="headerMenuBar">
<!-- Menu Item -->
</af:menuBar>
</ui:composition>
在ADF组件中使用Facelet包含页面的正确方法是什么?
答案 0 :(得分:0)
我已经使用facelets和jspx测试了你的布局,我得到了相同的结果:两者都在工作。
你的问题在别处。
问题更新后更新:
在ADF中应避免使用 <ui:include>
标记,请参阅Regex Demo