【发布时间】:2013-12-23 16:43:57
【问题描述】:
在我的应用中,我有带有一些参数的 JSF 页面
(示例页面网址:/pages/user.xhtml?id=123&userToShowId=2)
在这个页面上我有一个commandButton。单击它后,我想使用所有参数重定向到同一页面。我知道,对于这个指定的页面,我可以通过这种方式手动执行此操作:
public String redirect(){
//extCtx - ExternalContext
//ctx - FacesContext
Map<String,String> param = extCtx.getRequestParameterMap();
String currentURL = ctx.getViewRoot().getViewId();
return currentURL+"?userToShowId="+param.get("userToShowId")+"&id="+param.get("id");
}
但是,当我想获得从任何带有任何参数的页面重定向的通用方式时该怎么办?
如果我只在页面上查看参数,而不将其设置为 bean 属性:
<f:metadata>
<f:viewParam name="backurl"/>
<f:viewParam name="id"/>
</f:metadata>
不是value:
<f:metadata>
<f:viewParam name="backurl" value=#{bean.id}/>
<f:viewParam name="id" value=#{bean.id}/>
</f:metadata>
我可以使用includeViewParams=true 来完成我的工作吗?
【问题讨论】:
标签: jsf redirect jsf-2 parameters query-string