我对 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>
这是支持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_center) 就会消失。我已经尝试了多种表单和面板控件的组合以及 Ajax,但无法加载第二页和菜单。由于我对 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">
非常感谢任何有关整体方法的帮助或建议!
谢谢!