特定の commandMenuItem がクリックされたときに、タグに別のメニュー ページ フラグメントを表示したい デフォルトのページ フラグメントは適切に表示されますが、メニュー クリック時にページが更新されません actionListner を介してページ ID を取得しますが、それでもマイ コードの更新は行われません同じです:-
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<f:view xmlns:f="http://java.sun.com/jsf/core" xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich"
xmlns:ui="http://java.sun.com/jsf/facelets">
<af:document title="untitled2.jsf" id="d1">
<af:form id="f1">
<a4j:form ajaxSubmit="true" reRender="content">
<panelGrid>
<af:menuBar id="mb1">
<af:menu text="menu 1" id="m1">
<af:commandMenuItem text="commandMenuItem 1" id="menuPage" actionListener="#{PageBean.getMenu}" action="menuPage.jsff">
<a4j:ajax execute="@form" render=":content"/>
</af:commandMenuItem>
</af:menu>
<af:menu text="menu 2" id="m2">
<af:commandMenuItem text="commandMenuItem 2" id="menuPage2" actionListener="#{PageBean.getMenu}" action="menuPage1.jsff">
<a4j:ajax execute="@form" render=":content"/>
</af:commandMenuItem>
</af:menu>
</af:menuBar>
<ui:insert name="content">
<ui:include src="#{PageBean.page}.jsff"/>
</ui:insert>
</panelGrid>
</a4j:form>
</af:form>
</af:document>
</f:view>
ページを表示するために使用されているページ変数の動的ページ値を追跡および更新するために使用されている私の actionListner Bean は次のとおりです。
PageBean(アクションリスナー用bean)
import javax.faces.event.ActionEvent;
public class PageBean {
String page = "menuPage";
public PageBean() {
}
public void getMenu(ActionEvent actionEvent) {
// Add event code here...
String id = actionEvent.getComponent().getId();
System.out.println(" Menu ID : "+id);
page = id;
}
public String getPage() {
return page;
}
}
今、私はメニュー2からcommanMenuItem2をクリックすると、メニューページ1の代わりにoutputText値メニューページ2を含む関連ページmenuPage2が表示されるようにしたい