我對JSF和PrimeFaces相當新,並且在開發具有多個菜單的完整頁面佈局時遇到了一些問題。嵌套的primefaces佈局動態頁面更新
問題#1
我們必須使用與左側嵌套佈局單位PrimeFaces 3.3一個完整的頁面佈局如下:
<p:layoutUnit id="west" position="west" header="Services" resizable="true" closable="true" collapsible="true" effect="drop">
<p:layout>
<p:layoutUnit id="inner_center" position="center">
<h:form id="formMainMenu">
<ui:include src="#{menuBean.pageToDisplay}.xhtml" />
</h:form>
</p:layoutUnit>
<p:layoutUnit id="inner_south" size="200" position="south">
<h:form id="formStartMenu">
<p:menu>
<p:submenu label="Start Menu">
<p:menuitem value="Start" actionListener="#{#menuBean.setPageToDisplay('template/menu/start')}" update=":inner_center" />
</p:submenu>
</p:menu>
</h:form>
</p:layoutUnit>
</p:layout>
</p:layoutUnit>
下面是支持bean:
@ManagedBean(name = "menuBean")
@SessionScoped
public class menuBean implements Serializable {
private String pageToDisplay = "template/menu/main";
public String getPageToDisplay() {
return this.pageToDisplay;
}
public void setPageToDisplay(String pageToDisplay) {
this.pageToDisplay = pageToDisplay;
} }
當我點擊menuItem時,整個LayoutUnit(inner_c輸入)消失。我已經嘗試了Ajax的Forms和Panel控件的許多組合,並且無法加載第二頁和菜單。由於我在JSF方面的知識有限,也許我的方法不正確。我希望這件事很簡單,我只是想念它。
從menuItem動作,我想加載inner_center佈局單元中的另一個PrimeFaces菜單bean ..也許我不需要這樣做,只需通過Ajax調用菜單?
ISSUE#2 使用這些嵌套佈局單元,當頁面加載時,父佈局單元標題「服務」完全消失。
<p:layoutUnit id="west" position="west" header="Services" resizable="true" closable="true" collapsible="true" effect="drop">
任何關於整體方法的幫助或建議非常感謝!
謝謝!
一些環境信息:Mojara 2.1,Primefaces 3.3,NetBeans IDE 7.0.1 + Glassfish – 2012-07-12 04:28:27
我不能肯定地說,但是如果插入的頁面具有表單組件,則可能會發生此問題。嵌套表單會導致問題。 – 2012-07-12 12:52:20
謝謝。你是正確的..建議將表單放在layoutUnit控件中,我已經完成了...還確保在加載的頁面中沒有表單標籤。我將再次嘗試使用''和PanelGroup。也許參考是關閉的。 IDEALLY,我想跳過加載一個頁面,並直接在layoutUnit中放置一個菜單,並通過傳遞一個值來動態填充它。 '
' ..不確定最好的辦法。 – 2012-07-12 16:08:39