Bonjour,
J'ai un soucis dont je ne vois pas l'origine... J'ai développé il y a un moment un système pour pouvoir modifier dans une table une annotation par le biais d'un InplaceInput. Ceci marchait très bien.
Depuis, de l'eau a coulé sous les ponts. J'ai notemment fait une maj de RichFaces en 3.3.1 et rien ne va plus.
Voici les bouts de code concerné.
Colonne du tableau concernée (l'élément est courrierItem) :
Dans mon controleur boiteReceptionHandler :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <rich:column id="mylettranetBoiteReceptionAnnotation" sortBy="#{courrierItem.courrier.annotation}"> <f:facet name="header"> <h:outputText value="#{msg.GLOBAL_libcourt_annotation}"/> </f:facet> <rich:inplaceInput value="#{courrierItem.courrier.annotation}" selectOnEdit="true" editEvent="onclick" layout="block" > <a4j:support event="onviewactivated" reRender="tableCourrier" action="#{boiteReceptionHandler.annoter}" > <f:setPropertyActionListener value="#{courrierItem}" target="#{boiteReceptionHandler.courrierLigne}" /> </a4j:support> </rich:inplaceInput> </rich:column>
Fonctionnement : lorsqu'un utilisateur modifie l'inplaceInput, le courrier modifié est envoyé dans la variable courrierLigne du controleur et la méthode annoter est appellée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public void annoter() { LOG.debug("annoter()"); LOG.debug("courrierLigne présent ? " + (courrierLigne != null)); LOG.debug("annotation : "+courrierLigne.getCourrier().getAnnotation()); new GestionCourrierProxy().annoterCourrier(courrierLigne.getCourrier()); LOG.debug("FIN annoter()"); }
Résultat : la variable est bien settée et la méthode appellée. Cependant, l'objet courrierLigne ne prend aucun compte des modifications apportées dans l'ihm via le InplaceInput. L'annotation reste null alors qu'il a été modifié dans mon navigateur...
Est-ce que quelqu'un verrait une solution à ce problème ?
Partager