Я новичок в JSF и 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>
Вот поддерживающая фасоль:
@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;
} }
Когда я нажимаю на элемент меню, весь LayoutUnit (внутренний _центр )исчезает. Я пробовал многочисленные комбинации элементов управления Forms и Panel вместе с Ajax и не могу загрузить вторую страницу и меню. Возможно, мой подход неверен из-за моих ограниченных знаний в JSF. Я надеюсь, что это что-то простое, и я просто скучаю по нему.
Из действия menuItem я хочу загрузить еще один bean-компонент меню PrimeFaces во внутренний блок центрального макета _... может быть, мне не нужно этого делать, а просто вызвать меню через Ajax?
ВЫПУСК #2 С этими вложенными модулями макета при загрузке страницы родительский заголовок «Службы» LayoutUnit полностью исчезает.
<p:layoutUnit id="west" position="west" header="Services" resizable="true" closable="true" collapsible="true" effect="drop">
Любая помощь или совет по общему подходу очень ценятся!!
Спасибо!