xhtmlにfullPageレイアウトがあり、メニューには西に配置されたlayoutUnitがあり、コンテンツには中央に配置されたlayoutUnitがあります。
いくつかの中央に配置された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>
そしてそれのための豆は次のとおりです:
@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;
}
}