jsf kann ich schließen, browser-Registerkarte von der Bohne?
Meine Anwendung ist die Verwaltung von software-und Bedienkomfort, möchte ich es Ihnen ermöglichen, öffnen Sie mehrere Registerkarten für Parameter-änderung mehr als einen Datensatz zu einem Zeitpunkt. Aber nach Abschluss was auch immer Sie tun, die tabs die offen bleibt, und ich habe einige Beschwerden über das. Also im Grunde meine Frage ist:
Wenn es irgendeinen Weg, um in der Nähe browser-tab, der sendet eine Anforderung an Methode in meiner backing-bean? zum Beispiel:
JSF-Seite:
<h:commandButton value="Public score"
action="#{assignmentBean.publicSelected()}">
</h:commandButton>
Bean-Methode:
public void publicSelected() {
application.setAssignmentStatus(done);
dataAccess.mergeEntity(application);
}
gibt es eine Möglichkeit, um etwas hinzuzufügen nach dem Zusammenführen von Befehl und schließen Sie die browser-Registerkarte, die Methode aktiviert? Danke für die Hilfe
VOLLSTÄNDIGE CODE FÜR die LÖSUNG ich bin schlecht mit mischen JS-und JSF, also für alle von Euch, die sind auch schlecht ich poste vollständigen code-Lösung mit Tiago Vieira Dos Santos Hinweis.
Nun ist mein button code sieht so aus:
<h:commandButton value="Public score"
action="#{myBean.doThings}">
<f:ajax execute="@this" onevent="pop"/>
</h:commandButton>
plus auf der Unterseite der Seite Hinzugefügt habe ich den code wie folgt:
<script type="text/javascript">
function pop(data){
if(data.status == "success"){
window.close();
}
}
</script>
nun, nach der Methode tut, was getan werden muss, schließt sich das Fenster.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, man kann mit dem javascript-Befehl Window.close () - dann können Sie es auf oncomplete-tag oder anrufen, Sie managed bean mit dem FacesContext.
Sehen Sie mehr in diesem Wie schließt man den aktuellen tab in einem browser-Fenster?
Mit einem OutputLink und Javascript
Mit dieser Lösung haben wir die Kontrolle über das Aussehen des neuen browser-Fenster. Und da gibt es kein postback, es ist keine überprüfung überhaupt. Dies ist der einfachste Weg, um öffnen Sie ein neues browser-Fenster, wenn keine Modell-update notwendig ist und keine Aktion ausgeführt werden soll.
Zur Durchführung einer geeigneten Maßnahme handling müssen wir verschieben die Entscheidung, ob ein neues Fenster öffnen, das action-listener.