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 :

FacesContext.getCurrentInstance() et parametre ?


Sujet :

JSF Java

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 136
    Par défaut FacesContext.getCurrentInstance() et parametre ?
    Bonjour

    est ce qu'on peut avec FacesContext.getCurrentInstance() récupérer les parametres envoyé en url ??

    facesContext.getExternalContext().getRequestParameterNames() envoi les noms des parametres avec des truc bizart qui sont pas dans mon url

    du coup si je fait : getParameterValues ça donne pas exactement ce que je veut ..


    merci

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    hello,

    tu peux le faire de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    		FacesContext context = FacesContext.getCurrentInstance();
    		Map map = context.getExternalContext().getRequestParameterMap();
    		return map.get(key);

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 136
    Par défaut
    euhhh au fait, en entré j'ai cette url :

    page.html?nom=eric&identifiant=51&tel=230101244fax545966....

    je voudrais récuperer les couples :
    nom=eric
    identifiant=51
    tel=230101244
    fax=545966
    ..

    je connais pas les couples, ça peut etre n'importe quoi

    avec un lien <a href> ça "request.getQueryString()" ça marche

    mais est-ce que c'est possible quand on passe par un lien "commandLink" ou un bouton qui submit mon formulaire ??

  4. #4
    Membre averti
    Profil pro
    Chargé d’études
    Inscrit en
    Octobre 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d’études

    Informations forums :
    Inscription : Octobre 2006
    Messages : 36
    Par défaut
    Salut Eric,
    Visiblement ton url est encodée, il faudrait faire un truc du genre unescape.
    J'ai trouvé un code qui fait ça proprement :

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    public class Tools {
     
        /**
         * Creates a new instance of Tools
         */
        public Tools() {
        }
     
        public static String unescape(String s) {
            StringBuffer sbuf = new StringBuffer() ;
            int l  = s.length() ;
            int ch = -1 ;
            int b, sumb = 0;
            for (int i = 0, more = -1 ; i < l ; i++) {
                /* Get next byte b from URL segment s */
                switch (ch = s.charAt(i)) {
                    case '%':
                        ch = s.charAt(++i) ;
                        int hb = (Character.isDigit((char) ch)
                        ? ch - '0'
                                : 10+Character.toLowerCase((char) ch) - 'a') & 0xF ;
                        ch = s.charAt(++i) ;
                        int lb = (Character.isDigit((char) ch)
                        ? ch - '0'
                                : 10+Character.toLowerCase((char) ch)-'a') & 0xF ;
                        b = (hb << 4) | lb ;
                        break ;
                    case '+':
                        b = ' ' ;
                        break ;
                    default:
                        b = ch ;
                }
                /* Decode byte b as UTF-8, sumb collects incomplete chars */
                if ((b & 0xc0) == 0x80) {			// 10xxxxxx (continuation byte)
                    sumb = (sumb << 6) | (b & 0x3f) ;	// Add 6 bits to sumb
                    if (--more == 0) sbuf.append((char) sumb) ; // Add char to sbuf
                } else if ((b & 0x80) == 0x00) {		// 0xxxxxxx (yields 7 bits)
                    sbuf.append((char) b) ;			// Store in sbuf
                } else if ((b & 0xe0) == 0xc0) {		// 110xxxxx (yields 5 bits)
                    sumb = b & 0x1f;
                    more = 1;				// Expect 1 more byte
                } else if ((b & 0xf0) == 0xe0) {		// 1110xxxx (yields 4 bits)
                    sumb = b & 0x0f;
                    more = 2;				// Expect 2 more bytes
                } else if ((b & 0xf8) == 0xf0) {		// 11110xxx (yields 3 bits)
                    sumb = b & 0x07;
                    more = 3;				// Expect 3 more bytes
                } else if ((b & 0xfc) == 0xf8) {		// 111110xx (yields 2 bits)
                    sumb = b & 0x03;
                    more = 4;				// Expect 4 more bytes
                } else /*if ((b & 0xfe) == 0xfc)*/ {	// 1111110x (yields 1 bit)
                    sumb = b & 0x01;
                    more = 5;				// Expect 5 more bytes
                }
                /* We don't test if the UTF-8 encoding is well-formed */
            }
            return sbuf.toString() ;
        }
    }
    J'espère que ça pourra t'être utile.

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 136
    Par défaut
    non ça fait pas exactement l'affaire !!

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    avec JSF il ne faut pas travailler comme en PHP ou autre language de script, je ne comprend pas bien pourquoi tu travailles de cette manière

  7. #7
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 136
    Par défaut
    euhhh quelle maniere ??

    j'ai une page générique A, qui est appelé par plusieur page, et qui elle meme appel deux autres page B,C

    ce que je veut c'est récuperer l'url qui a appelé ma page A pour faire une redirection vers cette url une fois le traitement fait ...
    avec des lien dans les trois pages A et B et C il faut que je peux revenir sur cette url

    comment faire ça en jsf ??

    avec <navigation-rule> je perd les parametres ....

  8. #8
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    quand tu executes une action tu retournes simplement le <from-outcome>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public String anAction () {
    //treatment
    return actionDefinedInFromOutcome;
    }

  9. #9
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 136
    Par défaut
    oui mais je perd les parametres qui étés dans l'url d'entrée ...

  10. #10
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    tu les mets en session

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ExternalContext G = FacesContext.getCurrentInstance().getExternalContext();
    HttpSession session = (HttpSession) G.getSession(true);
    session.setAttribute("aParameter", parameter);

  11. #11
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    mais bon je persiste à dire que c est une mauvaise approche, quand tu as une page JSF tu définis tes UIComponent sur un objet précis tu es sois dans le détail d un objet soit dans l affichage d une liste

    donc tu travailles sur un objet courrant d une certaine classe et tu connais les attributs de ta classe donc quand tu dis "je connais pas les couples, ça peut etre n'importe quoi " c est que tu n as pas modéliser correctement

  12. #12
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 136
    Par défaut
    pour les session j'évite ...

    "c est que tu n as pas modéliser correctement" !!

    je sais pas si j'ai bien expliqué le probleme ...

    comment tu peux connaitre les parametres venant d'une page que tu connais pas et t'a pas la main dessus !!

    ma page est appelé par plusieur page, ce que je veut c'est simplement recuperer les parametres dans les url pour les envoyer à nouveau vers ces pages, je fait rien avec enfin si je prend un parametre que je connais mais pas tous,
    une fois le traitement fait je fait une redirection vers ces pages avec leur parametres !!!

    je ne vois pas comment je pourrais modéliser ça !!!

  13. #13
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 136
    Par défaut
    oui autre chose :
    session.setAttribute("aParameter", parameter);

    ça marchera pas parce que je connais pas le nom du paramatre "aParameter" !!

  14. #14
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Par défaut
    je suis d'accord avec alexandre quand il dit que c'est une mauvais approche.

    Je ne comprends pas pourquoi tu ne peux pas mettre tes paramétres en session. tu peux d'ailleurs utiliser <f:param> pour cela.

  15. #15
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 136
    Par défaut
    je connais pas les nom des parametres !!!!!

  16. #16
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 17
    Par défaut
    Salut tout le monde.

    En effet, j'ai le même problème que le votre.

    Est-ce que vous pourrez nous dire si vous avez trouvé une solution à votre problème ?

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 10
    Par défaut
    Citation Envoyé par mohamida Voir le message
    Salut tout le monde.

    En effet, j'ai le même problème que le votre.

    Est-ce que vous pourrez nous dire si vous avez trouvé une solution à votre problème ?
    si t'as jammais trouvé de solution, c'est comme suit :

    Map map = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();

    ou pour les récupérer en String :
    String mesParametres = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().values().toString();

Discussions similaires

  1. [VBA-W] [AUTOMATION]Liste Fonctions/Paramètres
    Par Sunny dans le forum VBA Word
    Réponses: 2
    Dernier message: 05/12/2002, 16h35
  2. [VB6] Transférer ".picture" en paramètre
    Par Ricou13 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 19/11/2002, 08h43
  3. [VB6] [ADO] Procedure stockée : spécifier les paramètres
    Par adepdoom dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 16/10/2002, 10h45
  4. Passage de parametre a une anim Flash 5
    Par debug dans le forum Intégration
    Réponses: 4
    Dernier message: 03/06/2002, 17h59
  5. transmision de tableau en parametre
    Par Horus dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/05/2002, 11h15

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