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 :

Problème passage de paramètre à un bean


Sujet :

JSF Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 43
    Points : 22
    Points
    22
    Par défaut Problème passage de paramètre à un bean
    Bonjour,

    Je souhaiterais passer à un bean un paramètre entré par un utilisateur. Cela paraît simple et pourtant j'ai une erreur qui me dit "javax.faces.FacesException: #{deleteFilesBean.deleteFilesAction}: javax.faces.el.EvaluationException: java.lang.IllegalArgumentException: Could not find parameter 'monthNumber' in request parameters"

    Voici le code :

    - fichier jsp

    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
     
    <h:form id="deleteForm">
                    <p id="deleteBox">
     
                        <h:inputText styleClass="field" value="#{loginBean.monthNumber}">                                                    
                            <f:convertNumber type="number" integerOnly="true"/>
                        </h:inputText>            
     
                        <h:commandButton id="deleteButton" image="images/buttonDelete.gif" action="#{deleteFilesBean.deleteFilesAction}" disabled="false" onclick="return">
                            <f:param name="monthNumber" value="#{loginBean.monthNumber}"/>            
                        </h:commandButton>
     
                        <h:message for="monthNumber" styleClass="errorMessage"/>
                    </p>
     
                </h:form>
    - fonction deleteFilesAction + fonction getParameter du bean deleteFilesBean
    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
     
        public void deleteFilesAction() throws Exception{        
     
            int monthNumber=Integer.parseInt(getParameter("monthNumber"));
            Date deleteDate= getDeleteDate(monthNumber);
     
            try{
                deleteFiles(deleteDate);
            }catch(Exception e){
                System.out.println(e);
            }
        }
     
        public String getParameter(String parameterName) {
            Map parameters = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
            String value = (String)parameters.get(parameterName);
            if (value == null || value.length() == 0) {
                throw new IllegalArgumentException("Could not find parameter '" + parameterName + "' in request parameters");
            }
                 return value;
             }
    - getter et setter de loginBean

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    private Integer monthNumber;
     
        public void setMonthNumber(Integer monthNumber) {
            this.monthNumber = monthNumber;
            System.out.println("SET="+monthNumber);        
        }
     
        public Integer getMonthNumber() {
            System.out.println("GET"+monthNumber);
            return monthNumber;
        }
    Merci de votre aide !

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    C'est normal, ton monthNumber n'est pas en paramètre de la requête, mais dans un managed bean...

    4 solutions :


    1 - récupérer le bean par EL
    2 - Récupérer le bean par le contexte
    3 - Récupérer ta valeur par EL
    4 - Avoir un bean en propriété d'un autre


    tout est décrit ici :
    http://www.developpez.net/forums/sho...d.php?t=158075

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 43
    Points : 22
    Points
    22
    Par défaut
    Donc je dois faire quoi concrètement ? Récupérer la valeur depuis le managed bean plutôt que de passer cette valeur en paramètre de la requête ? Ou y a-t-il un moyen plus simple de récupérer la valeur entrée dans un inputText pour l'injecter en paramètre d'une requête ?

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    J'ai updaté pendant que tu postais

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 43
    Points : 22
    Points
    22
    Par défaut
    Ok merci ! C'est marrant je viens de balancer ton lien dans un post précédent ^^ Il n'y a donc pas moyen de prendre directement la valeur entrée dans un inputText sans passer par un bean ?

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    Etant donné que JSF fournit de gros outil pour faire du mappage
    HTML <--> Objet

    Ce serai bête de ne pas s'en servir...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 22/07/2009, 10h20
  2. Problème de passage de paramètre par bean
    Par fab76000 dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 08/01/2009, 20h44
  3. Passage de paramètres à un bean
    Par Moonwalker dans le forum JSF
    Réponses: 2
    Dernier message: 11/03/2007, 09h03
  4. Réponses: 3
    Dernier message: 18/08/2006, 10h20
  5. [NEWBIE] Problème passage en paramètre
    Par Goundy dans le forum Langage
    Réponses: 4
    Dernier message: 22/10/2005, 20h18

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