Das unterstützte JSF 2.x Feature der sequentiellen Verarbeitung mehrerer Ajax-Ereignisse funktioniert nicht für mich. Ich habe das folgende Szenario:JSF Ajax Event Queue funktioniert nicht auf Aktionsereignis nach Änderungsereignis
h: input (CHANGE)
<h:inputText id="consumption_input" value="#{cc.attrs.consumptionInfo.consumption}"> <f:ajax render="#{cc.attrs.outerRenderString}" event="change" listener="#{cc.handleAjaxRequest}" /> </h:inputText>
h: command (ACTION)
<h:commandButton id="startComparisonButton" action="#{rateComparisonBean.startRateComparison()}" value="#{bundle.rateResultOverview_startComparison}"> <!-- This is to avoid mixed requests, ajax and full requests --> <f:ajax render="@form"/> </h:commandButton>
Die Ereignisse der beiden Elemente sind korrekt gehandhabt, wenn es selbst ausgelöst wird.
Problem tritt auf, wenn beide Ereignisse mit einem Klick ausgelöst werden (Geben Sie einen Wert in textInput ein und klicken Sie anschließend auf die Schaltfläche). Ich erwartete, dass dies zu zwei synchron ausgelösten Ajax-Anfragen führte (CHANGE-TextField und ACTION-commandButton).
Leider gibt es nur eine Ajax-Anfrage (Change-TextField), das zweite Ereignis scheint komplett verloren zu sein.
ich bereits sichergestellt, dass alle Voraussetzungen für ein h: command voll gefüllt sind, wie hier darauf hingewiesen: commandButton/commandLink/ajax action/listener method not invoked or input value not updated
würde ich irgendwelche Hinweise, wie dieses Problem zu lösen bekommen schätzen.
Environment: Glassfish 3, Mojarra 2.1.3-FCS
Interessant ... Haben Sie dies in einer kleinen, leicht replizierten Anwendung verifiziert? Ist es möglich, Mojarra gegen MyFaces auszutauschen und zu sehen, ob Sie das gleiche Verhalten haben? –
Haben Sie jemals * erwartet * Verhalten mit zwei (Aktion) Listener gefeuert? – skuntsel
Haben Sie eine Lösung gefunden? Ich stehe vor dem gleichen Problem. –