primefaces facelets布局呈现空白页

时间:2013-02-09 10:09:25

标签: layout primefaces facelets

我遇到了PrimeFaces 3.4和Facelets的问题 我创建了一个Facelets模板,其中包含以下内容:

<?xml version='1.0' encoding='UTF-8' ?> 

<h:head>
    <h:outputStylesheet library="css" name="styles.css"></h:outputStylesheet>
</h:head>

<h:body>
    <p:layout fullPage="true">
        <p:layoutUnit position="north" size="200px" collapsible="true">
            <ui:include src="header.xhtml"></ui:include>
        </p:layoutUnit>
        <p:layoutUnit position="south" size="50px" collapsible="true">
            Sul
        </p:layoutUnit>
        <p:layoutUnit id="contentView" position="center">
            <ui:insert name="content"></ui:insert>
        </p:layoutUnit>        
    </p:layout>
</h:body>

我的index.xhtml:

    <?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<ui:composition template="./maintemplate.xhtml"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:p="http://primefaces.org/ui"
                xmlns:ui="http://java.sun.com/jsf/facelets">
    <ui:define id="contentView" name="content">
        <ui:include src="#{userController.currentPage}"></ui:include>
    </ui:define>
</ui:composition>

因此,userController.currentPage在开头包含一个与primeFaces组件一起使用的登录页面。 当我单击header.xhtml中可用的菜单时,我有以下内容:

<p:menuitem value="Tickets" actionListener="#{userController.setCurrentPage('tickets.xhtml')}" update=":contentView" ajax="false"></p:menuitem>

点击中心布局后变为空白。我没有看到任何错误或信息表明出现了问题。 我可以毫无问题地渲染页面tickets.xhtml。

非常感谢任何帮助。

我正在使用Netbeans 7.3 RC1 - Apache Tomcat 7.0.34.0 / PrimaFaces 3.4 / JSF 2.1

编辑:在菜单中输入ajax =“false”,但刷新了所有页面。 Anyidea如何在不刷新整个页面的情况下完成这项工作,我想刷新中心的一个。

1 个答案:

答案 0 :(得分:0)

终于成功了。 在这里找到以下内容:

How to ajax-refresh dynamic include content by navigation menu? (JSF SPA)

基于上述答案,我执行了以下操作: 1.输入ajax标签及其中的菜单。 2.这也是我的错误,将ajax渲染从<ui:layoutUnit>更改为<h:form> 3.从子xhtml中删除所有h:form标签,因为它现在包含在模板文件中。

在此之后它可以解决任何问题。