1

page1.xhtml

<h:body>
<h:link outcome="page2.xhtml>
<f:param name="id" value="1"/>
</hlink>
</h:body>

page2.xhtml

 <h:body>
    <f:metadata>
    <f:event type="preRenderView" listener="#{myBean.init}"/>
    </f:metadata>
    <ui:include src="#{myBean.myString}"/>
    </h:body>

MyBean.java

public void init(ComponentsystemEvent e){
  Map<String,String> params = 
  FacesContext.getExternalContext().getRequestParameterMap();
  String myId = params.get("id");
  int id = Integer.parseInteger(myId);
  if(id==1)
    setMyString = "myPage.xhtml";
}

page1.xhtml から page2.xhtml に移動しているときに、この ID に従ってページを表示するパラメーターとして ID を送信しています。

問題は、ページが見つからないことです

preRenderView init に行く前に getMyString() を評価していることがわかりました。

また、マネージドBeanのリソースインジェクションでエラーを返したポストコンストラクトを試しました

4

1 に答える 1