Ich versuche gerade, einige Front-End-Werte mit einigen serverseitigen Methoden (als eine Gruppe) zu validieren und stoße auf Probleme, die sich mit dem Ergebnis befassen.Wie man richtig auf das Datenfeld in einem a4j zugreift: jsFunction Ergebnis
Hier ist die XHTML für die Schaltfläche, die alles beginnt:
<h:commandButton action="#{Bean.save()}"
value="Save"
id="save"
onclick="checkForConfirmation();" />
Und das Javascript, von denen ein Teil die Schaltfläche Anrufe, der andere Teil von dem die jsFunction
function checkForConfirmation()
{
var name = document.getElementById("path:to:name").value;
var address = document.getElementById("path:to:address").value;
var city = document.getElementById("path:to:city").value;
var state = document.getElementById("path:to:state").value;
var zip = document.getElementById("path:to:zip").value;
jsFunc1(name, address, city, state, zip);
}
function showConfirmPrompt()
{
if(confirm('Confirmation before save'))
{
return true;
}
return false;
}
Anrufe und schließlich, die die jsFunction das problematische Stück ist:
<a4j:form>
<a4j:jsFunction name="jsFunc1" action="#{Bean.shouldBeConfirmed()}" data="#{Bean.booleanResult}" oncomplete="alert(data); if (data) {showConfirmPrompt();}">
<a4j:actionparam name="param1" assignTo="#{Bean.nameToBeValidated}"/>
<a4j:actionparam name="param2" assignTo="#{Bean.addressToBeValidated}"/>
<a4j:actionparam name="param3" assignTo="#{Bean.cityToBeValidated}"/>
<a4j:actionparam name="param4" assignTo="#{Bean.stateToBeValidated}"/>
<a4j:actionparam name="param5" assignTo="#{Bean.zipToBeValidated}"/>
</a4j:jsFunction>
</a4j:form>
das Problem ist, dass, um Am Ende dieser Kette von Ereignissen zeigt die Warnung (Daten) im Attribut 'oncomplete', dass die Daten nicht definiert sind. Ich muss dies definieren, um zu wissen, ob ein Warnungsdialog angezeigt werden soll oder nicht.
Ich kann bestätigen, dass die Bean.shouldBeConfirmed() -Methode tatsächlich ausgeführt wird, und mit den richtigen Parametern und in der Tat den richtigen Wert zurückgibt, und sogar den Wert der Bean.booleanResult-Variable (das ist eine normale Java-Boolean)). Was mache ich hier falsch?
Dies ist bei weitem meine beliebteste Frage. Ich vermute, viele Leute haben dieses Problem. Prost für die Suche nach einem Workaround und vielen Dank für die Freigabe! – Ben
Gern geschehen :) In der Tat ist es ein sehr häufiges Problem! Ich frage mich, warum die JBoss Community solche Fehler nicht an einem Ort dokumentiert. – Nikhil
Warum nicht in den Migrationsleitfaden aufnehmen? Das hat mir sehr geholfen, danke. NICHT FIXED IN 4.1 – Toskan