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 :

erreur avec <f:param>


Sujet :

JSF Java

  1. #1
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 132
    Points : 43
    Points
    43
    Par défaut erreur avec <f:param>
    Bonjour , je développe une entreprise application JEE (avec l'EJB) avec netbeans 6.7 ,JSF et Wampserver , representant une interface web aux clients qui leurs permettent de s'inscrire en fournissant certains données au premier temps et de login et modifier leurs comptes ultérieurement .

    Je manipule deux table dans ma base de données : table 'client' et table 'interest' .
    Ma table client contient 3 colonnes : id , keyword et clientId .

    Dans une de mes pages JSP 'iterestslist.jsp, je veux afficher des lignes de ma table interest suivant le critére " clientId= x " par exemple . Or j'utilise les EJB ,
    j'ai définit une metode findBy qui effectue ce recherche est bon.

    Maintenant , je suis face à un probléme :

    J'ai mis devant chaque ligne de ma datable dans ma page 'interestslist.jsp' un commandLink 'Delete' pour permettre de supprimer la ligne courante .

    Pour repérer la ligne courante , j'ai fait comme ca dans la page 'interestslist.jsp'



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <h:column>
            <f:facet name="header"></f:facet>
          <h:commandLink id="removelist"
                               value="Delete "
                               action="#{metier.removeinterest}">
     
    <f:param name="interestIdd" value="#{item.interestId}"/>
     
               </h:commandLink>
         <h:messages />
        </h:column>
    J'ai ajouté la methode



    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
    public String removeinterest()
    {
       
    
         FacesContext context = FacesContext.getCurrentInstance();
    
    Map map = context.getExternalContext().getRequestParameterMap();
    
     interestId = (Integer) map.get("interestIdd");
    
     System.out.println("-----------------Here----------");
    
       
       System.out.println(interestId);
    
      i=inf.find(interestId);
    
    System.out.println("---------------1-----");
       
       inf.remove(i);
    System.out.println("---------------2-----");
    
     clogin=login;
        intlist=inf.findByClogin(clogin);
         getIntlist ();
    System.out.println("---------------3-----");
    
       return "ok";
    
    
    }
    ou interestId est de type 'int'.

    Maintenat ,lorsque je clique sur le 'Delete' , j'obtient cet erreur :



    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
    type Rapport d'exception
     
    Message
     
    DescriptionLe serveur a rencontré une erreur interne () qui l'a empêché de remplir cette requête.
     
    Exception
     
    javax.servlet.ServletException: #{metier.removeinterest}: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
     
    Cause racine
     
    javax.faces.FacesException: #{metier.removeinterest}: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
     
    Cause racine
     
    javax.faces.el.EvaluationException: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
     
    Cause racine
     
    java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
     
    note Les suivis de pile complets de l'exception et de ses causes principales sont disponibles dans les journaux Sun GlassFish Enterprise Server v2.1.

    Ceci vient de la ligne soulignée dans le code :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    interestId = (Integer) map.get("interestIdd");
    que j'ai utilisé pour récupérer le paramétre interestId de la ligne courante .


    J'ai essayé de mettre ca (utilisé int qui est le type de interestId)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    interestId = (int) map.get("interestIdd");
    Mais j'ai trouvé devant la ligne cet erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    inconvertible types 
    required :int
    found :java.lang.Object
    interestId est de type int .

    Que doit je faire donc ? Merci

  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
    Points : 3 938
    Points
    3 938
    Par défaut
    Essaie plutot ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String paramId=context.getExternalContext().getRequestParameterMap().get("ton_param");
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  3. #3
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 132
    Points : 43
    Points
    43
    Par défaut
    Salut ,

    ca enlevé l'erreur , car en faite ca a changé le type de interestId en String .


    Mais maintenant je suis face à un autre probleme .Pour supprimer la ligne courante de la base de données ,je doit la chercher en fonction du paramétre
    interestId . Or la méthode 'find' définie dans l'ejb 'InterestFacadeLocal' n'est applicable qu'a un variable de meme type que la clé primaire qui est interestId qui définie comme etant int .

    Or la ligne que j'ai ajouté , a changé le type de interestId en String ,

    En run lorsque , on est réussit à extraire le interestId de la ligne courante et c'est affiché par le
    [code]
    System.out.println("le interestId est "+interestId);[/CODE

    mais qu'on arrive a la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
     i=inf.find(interestId);
    ca se bloque et affiche l'erreur :

    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
    type Rapport d'exception
     
    Message
     
    DescriptionLe serveur a rencontré une erreur interne () qui l'a empêché de remplir cette requête.
     
    Exception
     
    javax.servlet.ServletException: #{metier.removeinterest}: javax.ejb.EJBException
     
    Cause racine
     
    javax.faces.FacesException: #{metier.removeinterest}: javax.ejb.EJBException
     
    Cause racine
     
    javax.faces.el.EvaluationException: javax.ejb.EJBException
     
    Cause racine
     
    javax.ejb.EJBException
     
    Cause racine
     
    java.lang.IllegalArgumentException: You have provided an instance of an incorrect PK class for this find operation.  Class expected : class java.lang.Integer, Class received : class java.lang.String.
     
    note Les suivis de pile complets de l'exception et de ses causes principales sont disponibles dans les journaux Sun GlassFish Enterprise Server v2.1.
    On doit donc reconvertir de nouveau interestId en int .

    Y'a t'il une idée ? Merci d'avance .

  4. #4
    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
    Points : 3 938
    Points
    3 938
    Par défaut
    Integer.parseInt(....)
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  5. #5
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 132
    Points : 43
    Points
    43
    Par défaut
    c bon , c a marché .

    Merci beaucoup

  6. #6
    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
    Points : 3 938
    Points
    3 938
    Par défaut
    A ton service ...
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

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

Discussions similaires

  1. Erreur Avec Interbase
    Par smokemon dans le forum Bases de données
    Réponses: 1
    Dernier message: 29/10/2004, 07h24
  2. Erreur avec procédure LockWorkStation ...
    Par simonseztech dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 16/08/2004, 15h33
  3. [Débutant][Conception] Erreur avec une classe interne
    Par Devil Redneck dans le forum Général Java
    Réponses: 5
    Dernier message: 11/06/2004, 15h45
  4. Erreur avec les ADO
    Par megane dans le forum Bases de données
    Réponses: 7
    Dernier message: 08/03/2004, 21h37
  5. Erreur avec WM_COMMAND (BN_CLICKED)
    Par cyberlewis dans le forum Windows
    Réponses: 2
    Dernier message: 09/02/2004, 00h25

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