IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

Récupération d'une valeur via le Bean param


Sujet :

JSF Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 55
    Points : 43
    Points
    43
    Par défaut Récupération d'une valeur via le Bean param
    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

    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>
    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.

    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 =)

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    LE acitonlistener va être évalué lors du click sur le bouton. Hors, a ce moment param.id n'existe plus puisqu'il n'existait que pour la requete affichant le formulaire.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    C'est hélas bien ce que je pensais, mais comment palier à ceci ? Je pensais que stocker cette valeur dans une variable pourrait m'aider, mais semble t'il que non. :/

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    						<h:commandButton action="#{proposition.checkAndAdd}" value="Valider" >
    							<h:param name="id" value="#{param.id}"/>
    							<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>
    Devrais, je pense, faire l'affaire Ca va ajouter un paramètre id au formulaire envoyé :p

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    Extra ! Ca marche du feu de dieu ! Je te remercie grandement.
    Juste une petite chose, c'est f:param et non h:param, mais bon, jm'en suis sorti :p

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/02/2014, 16h06
  2. récupération d'une valeur stockée dans un bean
    Par mehoodm dans le forum Struts 1
    Réponses: 0
    Dernier message: 09/09/2008, 05h34
  3. [JSF] Récupération d'une valeur d'un bean
    Par mymyma dans le forum JSF
    Réponses: 1
    Dernier message: 21/06/2006, 10h15
  4. récupération d'une valeur dans une variable
    Par jh0483 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/08/2005, 09h49
  5. [scriplet] affecter une valeur par un bean:write
    Par viena dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 25/11/2004, 16h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo