Umleitung auf eine externe URL in einem neuen tab und Durchführung einer Aktion in der backing-bean zur gleichen Zeit

Arbeite ich an einer jsf-Anwendung, die zu einer bestimmten Zeit öffnen müssen, um eine externe Seite in einem neuen tab, das verlassen der ersten Seite aktiv. Ich muss einen Weg finden, um die Anwendung durchzuführen, in einem einzelnen button-Klick:

  1. eine Weiterleitung auf eine externe URL in einem neuen tab
  2. eine Aktion deaktiviert, die Schaltfläche selbst in der ursprünglichen Seite

Habe ich versucht mit einem <outputLink /> aber es hat kein action-Attribut.
Ich habe versucht, mit einer <commandLink />aber es ist keine Umleitung außerhalb.
Ich habe auch versucht ein <commandLink /> mit target="_blank" und eine Umleitung codiert in der backing-bean:

<h:commandLink onclick="submit();" target="_blank" action="#{myBean.execute}" disabled="#{myBean.linkDisabled}" value="external link" />

und in der backing-bean:

public String execute() {
    linkDisabled = true;

    try{
        ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
        externalContext.redirect(Constants.EXTERNAL_URL);
    } catch(Exception e){
        throw new FacesException("Redirection failed");
    }

    return THIS_PAGE;
}

Einer Seite in einem neuen tab geöffnet, aber es ist der aktuellen Seite statt der URL Constants.EXTERNAL_URLund der button ist immer noch aktiviert. Wird keine Fehlermeldung angezeigt. Jede Anregung?

Vielen Dank im Voraus, Andrea

InformationsquelleAutor avalori | 2012-04-17

Schreibe einen Kommentar