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'
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 <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>
ou interestId est de type 'int'.
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"; }
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 :
que j'ai utilisé pour récupérer le paramétre interestId de la ligne courante .
Code : Sélectionner tout - Visualiser dans une fenêtre à part interestId = (Integer) map.get("interestIdd");
J'ai essayé de mettre ca (utilisé int qui est le type de interestId)
Mais j'ai trouvé devant la ligne cet erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part interestId = (int) map.get("interestIdd");
interestId est de type int .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4inconvertible types required :int found :java.lang.Object
Que doit je faire donc ? Merci
Partager