I am fairly new to JSF and PrimeFaces and have a couple issues in developing a full page layout with multiple menus.
ISSUE #1
We have a full page layout using PrimeFaces 3.3 with nested layout units on the left side as follows:
<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>
Here is the backing 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;
} }
When I click on the menuItem, the entire LayoutUnit (inner_center) disappears. I have tried numerous combinations of Forms and Panel controls along with Ajax and cannot get the second page and menu to load. Maybe my approach is incorrect due to my limited knowledge in JSF. I am hoping this something simple and I am just missing it.
From a menuItem action, I want to load another PrimeFaces menu bean in the inner_center layout unit.. maybe I don't need to do this and just call the menu via Ajax?
ISSUE # 2 With these nested layoutunits, when the page loads, the parent LayoutUnit header "Services" disappears completely.
<p:layoutUnit id="west" position="west" header="Services" resizable="true" closable="true" collapsible="true" effect="drop">
Any help or advice on the overall approach is greatly appreciated!!
Thanks!
<h:form prependId="false">
and PanelGroup. Maybe a reference is off. IDEALLY, I would like to skip loading a page and place a menu in directly in the layoutUnit and populate it dynamically by passing a value.<p:menu model="#{coreMainMenuBean.changeMainMenu(passed.value)}"/>
..not sure the best way though. – Ryan M.