我使用的布局结构有centerLayout, westLayout,northLayout
当我运行文件时,我得到以下错误:/UI布局初始化错误。中间窗格元素不存在。中间窗格是必需的元素。"
my template is:
<p:layoutUnit position="north" size="100" collapsible="true">
<header>
<div class="logo1">
<img src="#{facesContext.externalContext.requestContextPath}/resources/images/logo1.png" alt="Gestion d'accès et de habilitations" />
</div>
<ul>
<li><h:link outcome="/profile" value="Profile"/></li>
<li><a href="#">Se déconnecté</a></li>
</ul>
<div class="logo2">
<img src="#{facesContext.externalContext.requestContextPath}/resources/images/logo2.png" alt="Altijari Bank" />
</div>
</header>
</p:layoutUnit>
<p:layoutUnit position="west" size="210" header="Menus" collapsible="true">
<h:form id="frmMenu1">
<p:accordionPanel multiple="true" id="acc" activeIndex="0">
<p:tab title="Gestion des agences">
<p:menu style="width:100%" id="m1">
<p:menuitem value="Consulter" action="#{agenceController.prepareList()}"/>
<p:menuitem value="Ajouter" action="#{agenceController.prepareCreate()}" />
</p:menu>
</p:tab>
<p:tab title="Gestion des utilisateurs">
<p:menu style="width:100%" id="m2">
<p:menuitem value="Consulter" action="#{utilisateurController.prepareList()}"/>
<p:menuitem value="Ajouter" action="#{utilisateurController.prepareCreate()}" />
</p:menu>
</p:tab>
<p:tab title="Gestion des fonctions">
<p:menu style="width:100%" id="m3">
<p:menuitem value="Consulter" action="#{fonctionController.prepareList()}"/>
<p:menuitem value="Ajouter" action="#{fonctionController.prepareCreate()}" />
</p:menu>
</p:tab>
<p:tab title="Gestion des applications">
<p:menu style="width: 100%" id="m4">
<p:menuitem value="Consulter" action="#{applicationController.prepareList()}" />
<p:menuitem value="Ajouter" action="#{applicationController.prepareCreate()}"/>
</p:menu>
</p:tab>
<p:tab title="Gestion des fiches " >
<p:menu style="width: 100%" id="m5">
<p:menuitem value="Consulter" action="#{ficheController.prepareList()}"/>
<p:menuitem value="Ajouter" action="#{ficheController.prepareCreate()}" />
</p:menu>
</p:tab>
<p:tab title="Administration" >
<p:menu style="width: 100%" id="m6">
<p:menuitem value="Consulter" action="#{groupeController.prepareList()}" />
<p:menuitem value="Ajouter" action="#{groupeController.prepareCreate()}" />
</p:menu>
</p:tab>
<p:tab title="Traçabilité" >
<p:menu style="width: 100%" id="m7">
<p:menuitem value="Consulter" action="#{traceController.prepareList()}" />
<p:menuitem value="Ajouter" action="#{traceController.prepareCreate()}" />
</p:menu>
</p:tab>
</p:accordionPanel>
</h:form>
</p:layoutUnit>
我使用primefaces 3.2, jsf 2.1, glassfish 3.1.2.1
错误信息提示您缺少布局的中心部分。
是必填元素
定义一个类似的:
<p:layoutUnit position="center">
YOUR CONTENT
</p:layoutUnit>
当位于中间窗格部分的页面部分出现错误时,会发生这种情况。这可能是无效的xhtml标记、正在调用的bean中的错误或其他原因。
这似乎是一个错误在Primefaces 6.2和已经回答在这里:UI布局初始化错误Primefaces 6.2
在primefaces 5.1中,我遇到了由控制器bean设置选项的情况
<pe:layout id="fullPage" options="#{layoutController.layoutOptions}" stateCookie="true">
在那个控制器中我设置了未定义的子布局窗格
// options for nested center layout
LayoutOptions childCenterOptions = new LayoutOptions();
center.setChildOptions(childCenterOptions);
// options for center-north pane
LayoutOptions centerNorth = new LayoutOptions();
centerNorth.addOption("size", "50%");
childCenterOptions.setNorthOptions(centerNorth);
因此,如果您正在扩展primefaces展示,请确保禁用不存在的窗格上的配置。
由于此错误不会显示在其他缺失的窗格(east, west,…)上,这可能是一个令人头痛的问题。