编程语言
首页 > 编程语言> > Java-JSF / Primefaces-CommandButton:打开新的浏览器选项卡,而不会杀死ViewScoped bean

Java-JSF / Primefaces-CommandButton:打开新的浏览器选项卡,而不会杀死ViewScoped bean

作者:互联网

我正在尝试在由ViewScoped bean支持的视图中使用JSF视图(在Portlet中部署在Liferay中)打开一个新的浏览器选项卡.使用常规操作重定向会杀死bean.
我已经尝试过提供herehere的方法,但不幸的是没有成功.

该按钮大致如下所示:

<p:commandButton value="#{msg.label}" onclick="target='_blank'" 
                 action="#{sessionScopedBean.action(param)}" ajax="false" />

将target =’_ blank’移动到form属性没有帮助.我试过都返回null和void都没有成功.将ajax更改为true破坏了导航,没有打开新的选项卡,但是也没有杀死ViewScoped bean.

动作方法的内容如下所示:

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没有关系.有任何想法吗?

标签:jsf,primefaces,jsf-2,liferay,java
来源: https://codeday.me/bug/20191122/2062767.html