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 :

JSF 2.0 et les paramètres GET


Sujet :

JSF Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 42
    Par défaut JSF 2.0 et les paramètres GET
    Bonjour,

    J'utilise JSF dans le cadre d'un projet de formation.
    Ayant pris en compte les avantages et inconvénient de ce framework, je me suis fait une raison et je n'utilise donc plus de paramètres GET, pourtant presque indispensables pour l'ergonomie de mon projet.

    Seulement voila, j'apprend qu'avec la nouvelle spécification JSF 2, recuperer un paramètre GET est enfin possible sans devoir bricoler dans le face-config.xml (je laisse Spring gerer le lifecycle de mes bean) ou sans devoir passer par un framework tel que Pretty face.

    Quelqu'un pourrait-il m'éclairer à ce sujet ? Il est absolument impossible de trouver une quelconque explication sur le net. L'idée est juste de passer le paramètre via URL depuis une jsp, et de le récupérer dans le managed bean de la jsp appelée.

    Merci beaucoup.

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Si je comprends bien tu veux passer un paramètre en GET et le récuperer dans un managedBean c'est ca? si oui rien de plus simple, t'as la balise qui te permet de passer le paramètre, et coté managebean dans ton contexte JSF t'as une méthode qui te renvoie une hashmap de paramètre.
    Sinon je ne vois pas ton pb.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    tu veux dire quoi?

    - créer des url avec tous les paramètres qui simulent l'envoi d'un POST?
    - passer un ou deux paramètres à une URL get classique pour que tes beans y aient accès (exemple: appeler showEmployee.xhtml?employeeID=12345)

  4. #4
    Rédacteur
    Avatar de longbeach
    Profil pro
    Architecte de système d’information
    Inscrit en
    Avril 2003
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Avril 2003
    Messages : 943
    Par défaut
    Il y a des nouveautés concernant la transmission des paramètres des requêtes dans JSF 2.0.
    Mais je ne suis pas sûr que la question soit bien formulée puisque c'est vrai que récupérer un paramètre était bien entendu déja possible avant, avec le tag <f:param> par exemple.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 42
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    tu veux dire quoi?
    - passer un ou deux paramètres à une URL get classique pour que tes beans y aient accès (exemple: appeler showEmployee.xhtml?employeeID=12345)
    C'est bien cette (simple) action qui m'intéresse !

    Citation Envoyé par longbeach Voir le message
    Mais je ne suis pas sûr que la question soit bien formulée puisque c'est vrai que récupérer un paramètre était bien entendu déja possible avant, avec le tag <f:param> par exemple.
    ...et effectivement il semble que je soit dans l'erreur alors..!
    On m'a tout simplement déconseillé d'utiliser ces paramètre GET car la méthode pour les récupérer impliquait un drôle de bidouillage dans le face-config. Et effectivement dans les lacunes qu'on peux lire sur Jsf, les GET étaient systématiquement mentionnés.

    Je vais me renseigner sur ce f:param qui m'a l'air plutôt simple à mettre en œuvre finalement !

    Quels sont donc ces fameuses améliorations concernant le GET que propose Jsf 2.0 dans ce cas ?

    Merci de votre temps.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Je travaille avec JSF 1.1 toujours et je n'ai aucun soucis avec le passage de paramètres aux bean. Soit dans le faces-config tu fais ce genre de chose pour les récupérer:
    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
     
    	<managed-bean>
    		<managed-bean-name>circlesBean</managed-bean-name>
    		<managed-bean-class>be.rmi.intranet.jsf.HrCirclesBean</managed-bean-class>
    		<managed-bean-scope>request</managed-bean-scope>
    		<managed-property>
    		  <property-name>selectedCirclesId</property-name>
    		  <property-class>java.lang.Long</property-class>
    		  <value>#{param.circlesId}</value>
    		</managed-property>
    		<managed-property>
    		  <property-name>selectedCycleId</property-name>
    		  <property-class>java.lang.Long</property-class>
    		  <value>#{param.cycleId}</value>
    		</managed-property>
    		<managed-property>
    		  <property-name>selectedTalkId</property-name>
    		  <property-class>java.lang.Long</property-class>
    		  <value>#{param.talkId}</value>
    		</managed-property>
    	</managed-bean>
    Ca lie simplement des propriétés de ton bean à des paramètres (qu'ils soient GET ou POST n'y change rien!). C'est un exemple avec faces-config.xml. Spring doit avoir l'équivalent, puisque les managed-properties sont au centre de JSF.



    soit, dans ton code, tu fais ce genre de chose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String vacancyParam = (String)FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("vacancyIndex");
    de nouveau, que ce soit get ou post n'y change rien


    Le seul "problème" (si on puis dire) que je connaisse à JSF par rapport au GET, c'est qu'on ne peux facilement pas simuler l'envoi d'un formulaire comme on le ferait avec d'autres framework. Exemple, avec struts, tu crée un lien:
    delete.do?itemToDelete=blabla&confirm=blabla

    et ca fonctionne exactement de la même manière que si tu avais eu un formulaire avec une liste déroulante pour choisir itemToDelete et une case à remplir pour le confirm (par exemple).

    Avec JSF, toute soumission d'un formulaire nécessite qu'au préalable le formulaire aie été visible (c'est du aux cycles de vie JSF), ce qui rend difficile la création de lien direct qui simulent un état précis du formulaire. Donc rend difficile l'appel direct à une action. Mais si il s'agit juste de présenter des donnée suivant des critères passés en paramètres, ca ne pose pas de problème (cf faces-config ci dessus ou configuration spring).

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 185
    Par défaut
    Bonjour,

    je crois que tu veux un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <f:metadata>			<f:viewParam id="id" name="id" value="#{bean.id}"			
    	required="true"			
    	requiredMessage="The id parameter is missing"
    				converterMessage="Invalid id. (The id parameter is not a number)"
    			validatorMessage="Invalid id. (The id parameter is not a positive number)">	
    			<f:validateLongRange minimum="1"/>	
    		</f:viewParam>		
    	<f:event type="preRenderView" listener="#{bean.load}"/>
    		</f:metadata>
    ça suivra donc les 6 phases jsf (restore view ... render responce)

Discussions similaires

  1. identifier les paramètres de requêtes GET
    Par razam dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 06/10/2014, 17h56
  2. Réponses: 1
    Dernier message: 12/06/2013, 14h26
  3. [URL Rewriting] Masquer les paramètres GET
    Par remyli dans le forum Apache
    Réponses: 8
    Dernier message: 12/03/2008, 17h50
  4. Est il possible de masquer les paramètres GET ou POST?
    Par samsso2006 dans le forum Langage
    Réponses: 15
    Dernier message: 18/04/2007, 10h44
  5. Récupérer les paramètres "GET" sous forme de String
    Par vanitom dans le forum Langage
    Réponses: 2
    Dernier message: 22/02/2007, 15h00

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