Comment accéder correctement au champ de données dans un résultat de a4j: jsFunction
Je suis en train d'essayer de valider certains avant la fin de l'valeurs avec certaines méthodes côté serveur (d'un groupe) et je suis en cours d'exécution dans les questions relatives à la raison.
Voici le XHTML pour le bouton qui commence tout:
<h:commandButton action="#{Bean.save()}"
value="Save"
id="save"
onclick="checkForConfirmation();" />
Et le javascript, le cadre de laquelle le bouton d'appels, l'autre partie de qui le jsFunction appels
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;
}
Et enfin, la jsFunction qui est la problématique de la pièce:
<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>
Le problème est que, vers la fin de cette chaîne d'événements, l'alert(data) dans le "oncomplete' attribut indique que les données n'est pas défini. J'ai besoin de cet être définies afin de savoir si oui ou non pour afficher un dialogue d'avertissement.
Je peux confirmer que le Haricot.shouldBeConfirmed() la méthode est en effet en cours d'exécution, et avec les bons paramètres, et en effet de retourner la valeur correcte, et même en réglant la valeur de la Fève.booleanResult variable (ce qui est normal java boolean). Ce que je fais mal?
source d'informationauteur Ben
Vous devez vous connecter pour publier un commentaire.
Bien que c'est une très vieille question, j'ai eu le même problème avec Richfaces 4 M3. Paramètres suggérés par Yev n'a pas fonctionné. Ainsi visés richfaces de JIRA.
Selon laquelle, c'est un bug (qui est en "ne sera pas résolu", je ne sais pas pourquoi!)
Donc pour l'instant la solution de contournement consiste à utiliser
event.data
au lieu de
data
dans le
oncomplete
gestionnaire.Je l'ai testé et il fonctionne 🙂
J'ai exactement comme votre configuration, et cela fonctionne pour moi. La seule différence, c'est que j'ai des attributs supplémentaires sur jsFunction:
Et mes données (votre booleanResult) est un int. Fonctionne très bien.
J'ai aussi le même problème.. En cas de Booléenne résultats, nous avons besoin d'écrire complète de la méthode nom de, au lieu de retirer de lecture...
comme dans votre cas, il devrait être #{Bean.isBooleanResult}....
Permettez-moi de savoir si face à un problème...