ViewScoped
我正在尝试从一个由bean支持的视图中打开一个带有 JSF 视图的新浏览器选项卡(在一个 portlet 中,部署在 Liferay 中) 。使用正常动作重定向会杀死 bean。我已经尝试过这里和这里提供的方法,但不幸的是没有成功。
该按钮看起来或多或少像这样:
<p:commandButton value="#{msg.label}" onclick="target='_blank'"
action="#{sessionScopedBean.action(param)}" ajax="false" />
将 移动target='_blank'
到 form 属性没有帮助。我已经尝试过返回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 没有任何联系。有任何想法吗?:)