2010-04-01 15 views
0

Nous utilisons ICEFaces 1.8 et je voudrais effectuer une redirection vers une nouvelle URL, mais je veux l'ouvrir dans une nouvelle fenêtre. Nous sommes actuellement en mesure d'effectuer une redirection vers une nouvelle fenêtre en tant que:Est-il possible d'effectuer un transfert dans une nouvelle fenêtre?

public static void redirectToUrl(String urlPath) { 
    if (urlPath != null) { 
     try { 
      final String url = FacesUtil.getContextPath() + urlPath; 

      final StringBuffer jsCommand = new StringBuffer(); 
      jsCommand.append("window.document.location.href='").append(url).append("';"); 

      JavascriptContext.addJavascriptCall(FacesContext.getCurrentInstance(), jsCommand.toString()); 
     } catch (Exception e) { 
      throw new RuntimeException(e); 
     } 
    } 
} 

Mais un forward est-il possible d'utiliser une approche similaire?

Répondre

0

Essayez window.open(url).

+0

Est-ce que cela génère une nouvelle demande? Je perds des données sur l'écran qui ouvre la nouvelle fenêtre. La raison pour laquelle je veux le faire de cette façon est parce que nos beans backing sont tous dans la portée de la demande et toute redirection entraîne mon bean hors de portée. L'utilisation d'une règle de navigation conserve réellement mes données dans la portée puisqu'elle effectue un transfert. Cependant, je veux que cela s'ouvre dans une nouvelle fenêtre, pas remplacer le contenu de la fenêtre actuelle du navigateur. – sma