2013-02-09 173 views
0

我在與PrimeFaces 3.4和Facelets 一個問題,我創建了下面的一個Facelets模板:primefaces小面佈局顯示空白頁

<?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 = 「假」 菜單中的作品,但它刷新頁面所有。 Anyidea我如何在不刷新整頁的情況下完成這項工作,我只想刷新一頁。

回答

0

終於設法做到了。 發現在這裏如下:

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

根據我進行下列操作上面的回答: 1.put阿賈克斯標籤和裏面的菜單。 2.這也是我的錯誤,將ajax渲染從<ui:layoutUnit>更改爲<h:form> 3.從子xhtml中刪除所有h:form標記,因爲它現在包含在模板文件中。

之後它沒有任何問題。