我的 xhtml 中有一个 fullPage 布局,其中一个用于菜单的西方布局单元和一个用于内容的中心布局单元。
我已经实现了几个居中定位的layotUnits,我想根据选择的menuItem 来渲染它们。
当我运行应用程序时,它不会刷新 layoutUnit,直到我在浏览器中单击刷新(IE8 - 公司标准)。
xhtml如下:
<h:body>
<h:form>
<p:layout fullPage="true" id="allLayout">
<p:layoutUnit position="west" header="Menu" collapsible="true">
<p:menu>
<p:submenu label="Resources">
<p:menuitem value="Option1" action="#{menu.setSelectedMenu(menu.OPT1)}" update="allLayout"/>
<p:menuitem value="Option2" action="#{menu.setSelectedMenu(menu.OPT2)}" update="allLayout"/>
</p:submenu>
</p:menu>
</p:layoutUnit>
<p:layoutUnit position="center" rendered="#{menu.selectedMenu == menu.OPT1}">
<p:outputLabel value="This is the content option 1 (default)."/>
</p:layoutUnit>
<p:layoutUnit position="center" rendered="#{menu.selectedMenu == menu.OPT2}">
<p:outputLabel value="This is the content option 2."/>
</p:layoutUnit>
</p:layout>
</h:form>
</h:body>
它的 bean 是:
@ManagedBean
@SessionScoped
public class Menu {
private final int OPT1 = 1;
private final int OPT2 = 2;
private int selectedOption;
public Menu() {
selectedMenu = OPT1;
}
public int getSelectedOption() {
return selectedOption;
}
public void setSelectedOption(int selectedOption) {
this.selectedOption = selectedOption;
}
public int getOPT1() {
return OPT1;
}
public int getOPT2() {
return OPT2;
}
}