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 methodeCode:
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:
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:
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: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:interestId = (int) map.get("interestIdd");
interestId est de type int .Code:
1
2
3
4inconvertible types required :int found :java.lang.Object
Que doit je faire donc ? Merci