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 我将显示一个页面
问题是找不到该页面
我正在控制台中打印发生了什么我发现它正在评估 getMyString() 在进入 preRenderView init 之前为什么会这样
我也尝试过构建它在 managedBean 的资源注入中返回错误