JSF/Primefaces - bouton de commande: ouvrir de nouveaux onglets du navigateur sans ViewScoped bean se faire tuer

Je suis en train d'ouvrir un nouvel onglet dans le navigateur avec une vue JSF (dans un portlet, déployé dans Liferay) à partir d'un point de vue soutenu par une ViewScoped bean. À l'aide d'une action normale de redirection tue le haricot.
J'ai essayé la méthode fournie ici et ici, mais malheureusement sans succès.

Le bouton est plus ou moins comme ceci:

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

Le déplacement de la target='_blank' à la forme de l'attribut n'a pas aidé. J'ai essayé tous deux de retour null et void, sans succès. Modification de l'ajax true cassé la navigation, n'est-ce pas ouvrir un nouvel onglet, mais aussi ne pas tuer le ViewScoped bean.

La action méthode contenu ressemble à ceci:

public void action(String param) throws IOException {
   //some business logic

   FacesContext.getCurrentInstance().getExternalContext().redirect("viewName.xhtml");
}

La vue ne contient pas de balise gestionnaires comme <c:if test="..."> ou <ui:include src="...">. Il contient un <ui:repeat id="..." value="#{viewScopedBean.collection}"
var="..." varStatus="...">
tag, mais de l'enlever changé de noter.
Le formulaire est joint en <ui:composition> et <ui:define> balises.

Le point de vue, je rediriger vers a aucun lien avec la ViewScoped bean. Des idées? 🙂

OriginalL'auteur MarcelK | 2013-09-03