Bien le bonjour,
J'ai un problème que je ne comprend pas, je vous l'expose simplement :
J'ai dans un fichier xhtml qui est appelé avec un paramètre. Dans ce fichier, je souhaite récupérer la valeur de ce paramètre pour faire un set sur un attribut d'un autre Bean. Le soucis étant que j'arrive à récupérer cette valeur, j'arrive à l'afficher ou la tester, mais lorsque que je veux l'envoyer pour faire un set, la valeur semble être nulle.
Je vous expose mon code :
J'ai dans un premier temps procédé de la sorte
Ici, si j'entre une valeur manuellement à la place de param.id, elle est bien prise en compte, mais lorsque j'essaye d'acceder à la valeur de param.id, la valeur est nulle. Elle est même vide à vrai dire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 <h:form> <h:commandLink value="Retour à l'accueil" action="go_home" /> </h:form> <h:outputText value="Désolé, cette page est réservé aux membres." rendered="#{client.connecte ne 1}"/> <h:form rendered="#{client.connecte eq 1}"> <h:panelGrid border="0" columns="3"> <h:outputText value="Message" /> <h:inputTextarea rows="10" cols="15" id="desc" required="true" value="#{proposition.texte}" requiredMessage="Champ obligatoire"/> <h:message for="desc" /> <h:outputText value="Prix proposé" /> <h:inputText id="price" required="true" value="#{proposition.prix}" requiredMessage="Champ obligatoire"/> <h:message for="price" /> <h:commandButton action="#{proposition.checkAndAdd}" value="Valider" > <f:setPropertyActionListener value="#{client.email}" target="#{proposition.email}" /> <f:setPropertyActionListener value="En attente" target="#{proposition.statut}" /> <f:setPropertyActionListener value="#{param.id}" target="#{proposition.idAnnonce}" /> </h:commandButton> </h:panelGrid> </h:form>
Ce qui est étrange, c'est qu'il y a réellement quelque chose dan sparam.id, en effet, si je fais un ouptText de param.id, il m'affiche bien une valeur.
J'ai essayé une autre méthode, en créant une variable, mais le problème reste exactement le même :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 <h:form> <h:commandLink value="Retour à l'accueil" action="go_home" /> </h:form> <h:outputText value="Désolé, cette page est réservé aux membres." rendered="#{client.connecte ne 1}"/> <h:form rendered="#{client.connecte eq 1}"> <ui:repeat value="#{annonce_manager.listAnnonces}" var="a"> <c:set var="mavar" value="#{a.id}" scope="view" rendered="#{a.id eq param.id}" /> </ui:repeat> <h:panelGrid border="0" columns="3"> <h:outputText value="Message" /> <h:inputTextarea rows="10" cols="15" id="desc" required="true" value="#{proposition.texte}" requiredMessage="Champ obligatoire"/> <h:message for="desc" /> <h:outputText value="Prix proposé" /> <h:inputText id="price" required="true" value="#{proposition.prix}" requiredMessage="Champ obligatoire"/> <h:message for="price" /> <h:commandButton action="#{proposition.checkAndAdd}" value="Valider" > <f:setPropertyActionListener value="#{client.email}" target="#{proposition.email}" /> <f:setPropertyActionListener value="En attente" target="#{proposition.statut}" /> <f:setPropertyActionListener value="#{mavar}" target="#{proposition.idAnnonce}" /> </h:commandButton> </h:panelGrid> </h:form>
Autant vous dire que je suis un peu perdu, donc si vous avez une idée, une autre méthode pour faire ça ou quoi que ce soit, je vous remercie d'avance =)
Partager