UI布局初始化错误 - 中心窗格元素不存在

时间:2014-05-10 20:49:09

标签: jsf primefaces glassfish

我正在使用具有centerLayout,westLayout,northLayout

的Layout结构

当我运行该文件时,我接受以下错误: “/ UI布局初始化错误。 中心窗格元素不存在。 中心窗格是必需元素。“

我的模板是:

        <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 请帮帮我。

4 个答案:

答案 0 :(得分:5)

由于错误消息表明您缺少布局的中心部分。

这是必需元素。

定义一个与此相似的内容:

<p:layoutUnit position="center">
 YOUR CONTENT 
</p:layoutUnit>

答案 1 :(得分:4)

当中心窗格部分内部的页面部分出现错误时,会发生这种情况。这可能是一个无效的xhtml标记,在被调用的bean中有什么不对。查看您的服务器,记录是否有任何内容。

答案 2 :(得分:1)

这似乎是Primefaces 6.2中的错误,已在此处得到解答:UI Layout Initialization Error PrimeFaces 6.2

答案 3 :(得分:0)

在primefaces 5.1上我遇到了由controler 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 showcase,请确保在无法存在的窗格上禁用配置。

由于此错误未显示在其他缺失的窗格(东,西,......)上,这可能是一个很难解决的问题。