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 :

Perte d'attribut de request


Sujet :

JSF Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 25
    Points : 22
    Points
    22
    Par défaut Perte d'attribut de request
    Bonjour,

    J'ai un formulaire form.jsp qui contient entre autre le bout de code suivant :
    <% request.setAttribute("dbOpType","1"); %>

    Ce même formulaire contient un commandButton qui appel une méthode dans mon bean :

    public String delegate(){

    ...
    System.out.println(request.getAttribute("dbOpType");
    ...

    }

    La ligne en rouge affiche tout le temps null...mon attribut est perdue et je ne comprends pas pourquoi. Je ne veux pas contourner le problème en le mettant dans la session, quelqu'un a une idée de la cause de mon problème?

  2. #2
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    le request de ton bean tu l'as récupéré comment?

    a quel moment tu appelles ta methode delegate?


    et sinon avec un champ input que tu rempli, est ce que ton bean arrive a bien récupérer la valeur?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 25
    Points : 22
    Points
    22
    Par défaut
    Salut,

    J'obtient la référence à l'objet request de la facon suivante:

    HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();

    La méthode delegate() est appelé au bon moment, à la phase invoke application.
    Si je remplace request par session tout marche mais ce n'est pas ce que je désire...

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    Le problème est que <% request.setAttribute("dbOpType","1"); %> place dans ton context courrant l'attribut vu que JSP est executé sur le serveur avant d'être rendu au client

    il ne sera accessible que dans le contexte de ta page ...tu peux utilisé un request bean pour placé la valeur que tu veux et tu y accéderas dans ton autre managed bean

    dans ton managed bean qui comporte l'action

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
       protected Object getBean(String name) {
     
            return getApplication().getVariableResolver().resolveVariable(getFacesContext(), name);
     
        }
    Te retournera ton request bean qui contient les données que tu auras setté dans ta page JSF

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Les request ne sont pas les mêmes...
    Dans ta page, request correspond à la demande en cours, après, quand tu cliques sur le bouton, tu "fabriques" un nouveau request...

    Tu devrais peut-être placer ton attribut dans un context session, ou alors l'inclure à ton bean page (si tu en as un)

    A+

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/01/2012, 10h00
  2. Perte d'attributs en sortie de méthode.
    Par kolbek dans le forum C
    Réponses: 0
    Dernier message: 13/10/2010, 15h29
  3. Perte d'attributs mis dans HTTPServletRequest
    Par Frederik dans le forum Struts 2
    Réponses: 3
    Dernier message: 05/03/2010, 13h35
  4. problème de validation, perte d'attribut request
    Par avereyl dans le forum Struts 1
    Réponses: 1
    Dernier message: 13/05/2007, 13h09
  5. [WebForms]Perte des accents dans Request.QueryString
    Par Matth_S dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 15/11/2006, 18h21

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