我已經離開了包含不同頁面鏈接的面板。根據左側面板中單擊的鏈接,右側面板是應該使用新頁面進行更新的面板。我希望它是一個Ajax更新,以便左側面板,頁眉和頁腳不刷新。我嘗試過使用ui:include,但只在第二次點擊時刷新頁面。該線程的引用如何在JSF2和Primefaces中實現局部導航2
ui:include in richfaces 4 only gets updated on second click
有沒有替代的方式來實現JSF2和Primefaces 2.2.1相同。 由於
更新
<ui:define name="content">
<h:form id="form_01">
<div style="margin:0; padding:0; float:right; width:740px;background:#FFF; ">
<p:outputPanel id="pagePanel">
<ui:include src="#{panelMenu.currentPage}.xhtml"></ui:include>
</p:outputPanel>
</div>
<div style="padding:0; float:left;">
<p:panel style="width:205px;" header="User Menu">
<h:panelGrid columns="1">
<p:commandLink update="pagePanel" action="#{panelMenu.setCurrentPage('/pages/group_message')}">
<h:outputText value="Compose"/>
</p:commandLink>
<p:separator/>
<p:commandLink update="pagePanel" action="#{panelMenu.setCurrentPage('/pages/group_detail')}">
<h:outputText value="Groups"/>
</p:commandLink>
<p:separator/>
</h:panelGrid>
</p:panel>
</div>
</h:form>
</ui:define>
輔助Bean
@ManagedBean(name="panelMenu")
@SessionScoped
public class PanelMenu {
private String currentPage = "/pages/group_detail";
public String getCurrentPage() {
System.out.println(Thread.currentThread().getStackTrace()[1]);
System.out.println(FacesContext.getCurrentInstance().getCurrentPhaseId());
return currentPage;
}
public void setCurrentPage(String currentPage) {
System.out.println(Thread.currentThread().getStackTrace()[1]);
System.out.println(FacesContext.getCurrentInstance().getCurrentPhaseId());
this.currentPage = currentPage;
}
}
是的,你可以實現這一目標使用JSF2和Primefaces2.2.1。 –
你可以舉一些如何做的例子。 – WuR