我有一个非常简单的页面模板定义“af:pageTemplateDef”(TemplateAdmin4.jsf)。如您所见,模板根包含一个panelStretchLayout,它应该使模板拉伸到其父级(垂直和水平)。
<?xml version='1.0' encoding='UTF-8'?>
<af:pageTemplateDef xmlns:af="http://xmlns.oracle.com/adf/faces/rich" var="attrs" definition="private"
xmlns:afc="http://xmlns.oracle.com/adf/faces/rich/component" xmlns:f="http://java.sun.com/jsf/core">
<af:xmlContent>
<afc:component>
<afc:display-name>TemplateAdmin4</afc:display-name>
</afc:component>
</af:xmlContent>
<af:panelStretchLayout id="pt_psl1">
<f:facet name="center">
<af:panelAccordion id="pa1">
<af:showDetailItem text=" Getting started DATASOURCES" id="sdi1">
<af:outputText value="Here are a few things that can get you started." id="ot3"/>
</af:showDetailItem>
</af:panelAccordion>
</f:facet>
</af:panelStretchLayout>
</af:pageTemplateDef>
而且我有.jsf页面(ErrorPage.jsf),我将模板放在上面,你可以看到< af:pageTemplate viewId="/TemplateAdmin4.jsf" id="pt2"/>这一行
<?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">
<f:view xmlns:f="http://java.sun.com/jsf/core" xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
<af:document title="ErrorPage.jsf" id="d1">
<af:form id="f1">
<af:panelStretchLayout id="psl1">
<f:facet name="center">
<af:panelSplitter id="ps1">
<f:facet name="first">
<af:navigationPane id="np1">
<af:commandNavigationItem text="commandNavigationItem 1" id="cni1"/>
</af:navigationPane>
</f:facet>
<f:facet name="second">
<af:pageTemplate viewId="/TemplateAdmin4.jsf" id="pt2"/>
</f:facet>
</af:panelSplitter>
</f:facet>
</af:panelStretchLayout>
</af:form>
</af:document>
</f:view>
最后,我放置的模板没有拉伸到页面中。为什么会这样?如您所见,我也在 ErrorPage.jsf 页面中放置了一个panelStrechLayout。和其中的一个pannelSplitter(它的DimensionsForm也设置为父级)。