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