L'ouverture d'une nouvelle fenêtre en cliquant sur <p:commandButton> dans JSF

Je suis en train d'ouvrir une nouvelle fenêtre pop-up en cliquant sur un bouton <p:commandButton> en JSF.

Voici mon code,

<h:inputText style="width:42%"value="#{xxbean.values}" rendered="#{xxBean.yy == true}" 
     onblur="cc;" maxlength="6">
</h:inputText> 
<p:commandButton value="FindPhone" id="xxne" actionListener="#{xx.findPhoneSearch}"
    oncomplete="window.open('#{xx.wpUrl}', '_blank')" 
    rendered="#{xx.editCmdActionflg == true }"  async="false">
    <f:param name="pmid" value="#{xx.Details.uid}"/>                                   
</p:commandButton>

Je suis à l'appel qu'il a méthode findPhoneSearch comme celui donné ci-dessus dans actionlistener à l'intérieur du bouton de commande ,

Ici est la findPhoneSearch méthode ,

public void FindphoneSearch(ActionEvent event) {



        String param = "";

        Map<String, String> params = FacesContext.getCurrentInstance()
                .getExternalContext().getRequestParameterMap();

        String expression = "^[a-z0-9]+$";
        Pattern pattern = Pattern.compile(expression);

        if (params.get("pmid") != null) {
            String t_pmid = params.get("pmid");
            Matcher matcher = pattern.matcher(t_pmid);
            if (matcher.matches()) {
                param = "/cgi-bin/Findphones.pl?id=" + t_pmid.trim();
            }
        }

        if (params.get("lpid") != null) {
            String t_lpid = params.get("lpid");
            Matcher matcher = pattern.matcher(t_lpid);
            if (matcher.matches()) {
                param = "/cgi-bin/Findphones.pl?id=" + t_lpid.trim();
            }
        }

        String findphoneUrl= "http://Findphone.com" + param;
        wpUrl = findphoneUrl;


    }

Mon problème est que la fenêtre est ouverte vide sans passer par l'url que je suis le cadrage qui est attribué en wpurl.

Merci de m'aider à résoudre ce problème.

  • Essayez d'ajouter l'attribut de mise à jour="@tous" de votre bouton de commande. Je crois que votre problème est que vous tentez d'utiliser les appels ajax sans mettre à jour votre point de vue avec la réponse, donc la valeur de wpUrl est vieux (vide).
  • J'ai essayé ça aussi, mais sa ne l'aide pas.Je suis en train de passer les paramètres à la sauvegarde de haricots à l'aide de ce code <f:param name="pmid" value="#{xx.Des détails.uid}"/> quand je clique sur le bouton de commande, mais je ne pouvais pas en mesure d'obtenir la valeur.
  • Vous pouvez utiliser onclick="target='_blank'" stackoverflow.com/a/54010074/5626568
InformationsquelleAutor techy360 | 2014-01-23