JSF: beanAction vor JavaScript?

naeko

Mitglied
Hallo,

ich hab folgendes Problem.
ich möchte nach dem Klick auf ein Button, dass sich ein Popup öffnet, in dem eine bestimmte Seite angezeigt wird. Das Problem dabei ist, dass der Inhalt dieses Popups erst erzeugt werden muss (und zwar durch die BeanAction im selben Button). Also folgendermaßen:
Code:
<h:commandButton action="#{myBean.action}" value="..." onclick="window.open('mySite.jsf','popup');return true>
</h:commandButton>
Also in myBean.action werden die Werte gesetzt für mySite.jsf. Das Problem dabei ist, dass anscheinend zuerst das window.open ausgeführt wird und dann meine Bean-Action, weil nämlich mein Popup noch mit falschen Werten angezeigt wird. Gibt es eine Möglichkeit zuerst Action aufzurufen und dann das Popup anzuzeigen mit eben gesetzten Werten?
 
Hey,

vielleicht könntest du es mit einer anderen JavaScript Event Methode versuchen z.B. onBlur. Wenn das auch nicht funktioniert dann würde ich 2 commandButtons verwenden. Der Erste Button führt die Action Methode aus, der 2. öffnet das Popup Fenster.

Code:
<h:commandButton id="cmd_action"action="#{myBean.action}"  sytle="display:none;"/>

<h:commandButton value="..." onclick="click_cmd_action(); window.open('mySite.jsf','popup');return true />

Sonst würde mir auch noch einfallen das du die Action Methode erst in deinem Popup Fenster ausführst. Dazu könntest du das onLoad Tag des HTML Body's verwenden um click_cmd_action(); auszuführen. Anschließend musst natürlich das Popup Fenster neu rendern lassen.

Was machst du den in deiner Action Methode? Dauert die Ausführung vielleicht etwas länger?
 
Hi,
Kann mir jemand dazu eine konkrete Lösung mit Code geben.

Ich habe dies mit "window.onload = zeige;" versucht aber wie kann ich verhindern das die Funktion zeige() nur dann ausgeführt wird wenn ich ein commandButton betätige.



Ein Ausschnitt aus meinem Code:

// Anzeige des Modal Panels
function zeige(){
ShowContent('modal_panel'); ShowBgDiv('bg_transpa'); return true;
}

//Beim laden der Seite wird der Modal Panle angezeigt (das passiert immer ich möchte es nur bei onclick)
window.onload = zeige;

<a:commandButton id="button1" image="img/button_suche.png" action="#{ackundensuche.kundensuche}"
style="padding-right:15px; vertical-align:middle;"/>


Action sucht mir die Kunden. Das Modal Panel soll sie anzeigen.


Kann mir jemand bitte helfen, ich bin schon am verzweifeln

Danke
 
Zuletzt bearbeitet:
Hallo,

nur zu Doku weil ich lange gesucht habe:

<a4j:commandLink id="verifyDataWorking"
value="..." styleClass="box"
action="..."
rendered="true"
reRender="..."
oncomplete="showValidationReport();"
/>

Bei Nutzung von oncomplete wir erst die Action und danach das Script ausgeführt.
 

Neue Beiträge

Zurück