Hello,
J'utilise RichFaces en version 3.0.1, avec Ajax4JSF en version 1.1.1, et je rencontre un problème bizarre :
J'ai par exemple ce code :
Comme ça, ça marche c'est impeccable.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <h:inputText value="#{myBean.inputValue}"> <a4j:support event="onchange" actionListener="#{myBean.doChangeResult}" reRender="myForm"/> </h:inputText>
Maintenant, je change mon code pour ça :
Ce que fait mon composant <my:clientValidation/>, c'est d'ajouter un appel à une méthode Javascript dans le onchange du composant parent.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <h:inputText value="#{myBean.inputValue}"> <a4j:support event="onchange" actionListener="#{myBean.doChangeResult}" reRender="myForm"/> <my:clientValidation type="required"/> </h:inputText>
Dans le HTML généré, j'ai ceci :
Donc lorsque je modifie la valeur de ce champ, une requête AJAX est bien envoyée au serveur, mais ma méthode doChangeResult n'est pas appelée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <input type="text" name="myForm:j_id580" onchange="hideAlarm(this);A4J.AJAX.Submit('_viewRoot',null,event,{'parameters':{'j_id581':'j_id581'} ,'actionUrl':'/xxx/mytodolist.jsf'} );"/>
En utilisant <a4j:log/> m'affiche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 warn[14:22:59,498]: No information in response about elements to replace
---
Autre chose étrange (je trouve) :
Le composant <a4j:support> n'ajoute pas son code Javascript dans le onchange du inputText.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <h:inputText value="#{myBean.inputValue}" onchange=""> <a4j:support event="onchange" actionListener="#{myBean.doChangeResult}" reRender="myForm"/> </h:inputText>
Avez-vous une idée de pourquoi ça ne marche pas ?
Est-ce que cela fonctionne avec RichFaces 3.1 ?
Partager