【发布时间】:2013-09-06 17:06:03
【问题描述】:
我正在尝试从ViewScoped bean 支持的视图中打开一个带有 JSF 视图(在 portlet 中,部署在 Liferay 中)的新浏览器选项卡。使用正常动作重定向会杀死 bean。
我试过here和here提供的方法,可惜没有成功。
按钮看起来或多或少像这样:
<p:commandButton value="#{msg.label}" onclick="target='_blank'"
action="#{sessionScopedBean.action(param)}" ajax="false" />
将target='_blank' 移动到表单属性没有帮助。我已经尝试过返回null 和void 都没有成功。将 ajax 更改为 true 破坏了导航,没有打开新标签,但也没有杀死 ViewScoped bean。
action 方法内容如下所示:
public void action(String param) throws IOException {
//some business logic
FacesContext.getCurrentInstance().getExternalContext().redirect("viewName.xhtml");
}
视图不包含<c:if test="..."> 或<ui:include src="..."> 等标记处理程序。它确实包含一个<ui:repeat id="..." value="#{viewScopedBean.collection}"
var="..." varStatus="..."> 标签,但删除它改变了注释。
表单包含在<ui:composition> 和<ui:define> 标记中。
我重定向到的视图与 ViewScoped bean 没有任何联系。有任何想法吗? :)
【问题讨论】:
标签: java jsf jsf-2 primefaces liferay