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破坏导航,没有打开新选项卡,但也没有杀死ViewScopedbean。
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 没有任何联系。有任何想法吗?:)