Bonjour,
Je suis planté sur un problème des plus étranges depuis quelques heures et je n'arrive vraiment pas à trouver de solution.
Situation :
J'ai une page contenant un formulaire permettant de traiter une activité (nom, dates, description, etc...).
J'utilise cette page pour deux fonctions : l'ajout d'une nouvelle activité, et la modification d'une activité existante. Cette solution me paraissait assez logique, puisque j'ai exactement les mêmes champs dans les deux cas.
Problème :
Lors de la validation du formulaire (par un bouton), j'appelle une méthode différente sur le ManagedBean pour chaque cas. addActivity() et saveActivity().
J'ai donc crée deux boutons différents avec l'attribut "rendered" pour gérer les deux cas ://(mbActivite.activity.id est à 0 si je suis dans le cas d'un ajout, et contient l'id de mon activité dans le cas d'une modification)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <h:commandButton action="#{mbActivite.addActivity}" value="Ajouter l'activité" rendered="#{mbActivite.activity.id == 0}"/> <h:commandButton action="#{mbActivite.saveActivity}" value="Modifier l'activité" rendered="#{mbActivite.activity.id != 0}"/>
Et là, le problème survient. L'appel de la méthode addActivity fonctionne correctement, mais celui de la méthode saveActivity ne fonctionne pas (elle n'est pas du tout appelée, j'ai testé en debug).
Si j'enlève l'attribut "rendered", les deux boutons s'affichent (normal), et l'appel des deux méthodes fonctionne correctement ().
J'ai également essayé la solution du <c:choice>, mais elle engendre le même problème qu'avec "rendered".
Voilà, j'espère que quelqu'un a une petite idée de ce qui peut se passer. Merci d'avance.
Partager