Bonjour,
J'espère vraiment que vous m'aidiez sur ce point là parce que ça fait plus d'une semaine que je cherche la solution mais en vain.
Bon, j'ai deux tables; affectation et article et ils sont reliez par une association affecter qui a un attribut de plus : quantite.
J'ai généré le mapping et les classe POJO automatiquement depuis netBeans. J'ai obtenu alors deux 4 classes : affectation, article, Affecter et AffecterId. Les deux dernières classes ont un seul fichier de mapping : Affecter.hbm.xml
Le problème est quand je veux insérer dans Affecter j'obtiens toujours une erreur : java.lang.classCastException.
addAffectation.xhtml
affectationBean.java
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:f="http://xmlns.jcp.org/jsf/core"> <head> <title>TODO supply a title</title> <script> function confirmer() { return confirm("Voulez-vous vraiment supprimer cette ligne?"); } </script> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> </head> <body> <!-- CHOISIR LA DIVISION :--> <h:form id="division"> <table border="1px solid black"> <tr> <td><h:outputLabel value="Choisir la division : " for="divis"></h:outputLabel></td> <td><h:selectOneMenu value="#{affectationBean.entite}" id="divis" style="width: 100%"> <f:selectItem itemValue="" itemLabel=""></f:selectItem> <f:selectItems var='o' itemValue="#{o.idEntiter}" itemLabel="#{o.service}" value="#{affectationBean.listDivision}"></f:selectItems> </h:selectOneMenu> </td> </tr> <tr> <td><h:outputLabel value="Date : " for="date"></h:outputLabel></td> <td><h:inputText value="#{affectationBean.date}" id='date'></h:inputText></td> </tr> <tr> <td colspan="2"><center><h:commandButton value="Choisir" actionListener="#{affectationBean.addAffectation}" ></h:commandButton></center></td> </tr> </table> </h:form> <!-- CHOISIR LES ARTICLES : --> <h:form id="article"> <table border="1px solid black"> <tr> <td><h:outputLabel value="Sélectionner un article : "></h:outputLabel></td> <td> <h:selectOneMenu value="#{affectationBean.article}" id="art" converter="articleConverter" style="width: 100%" > <f:selectItem itemValue="" itemLabel=""></f:selectItem> <f:selectItems var='o' itemValue="#{o}" itemLabel="#{o.designation}" value="#{affectationBean.articles}" ></f:selectItems> </h:selectOneMenu> </td> </tr> <tr> <td><h:outputLabel value="Quantité : " for="qte"></h:outputLabel></td> <td><h:inputText value="#{affectationBean.quantite}" id="qte"></h:inputText></td> </tr> <h:commandButton value="Ajouter dans la liste " actionListener="#{affectationBean.addInList}" ></h:commandButton> </table> </h:form> <!-- LISTES DES ARTICLES ET QUANTITE SELECTIONNER --> <br/><br/><br/><br/> <h1>Liste des articles à affecter :</h1> <h:form > <h:dataTable value="#{affectationBean.itemses}" var="o" border="1" style="border: 1px solid black;"> <h:column > <f:facet name="header">Article </f:facet> <h:outputText value="#{o.article.designation}"></h:outputText> </h:column> <h:column > <f:facet name="header">Quantité dans le stock </f:facet> <h:outputText value="#{o.article.quantitestock}"></h:outputText> </h:column> <h:column > <f:facet name="header">Quantité demandé</f:facet> <h:outputText value="#{o.quantite}"></h:outputText> </h:column> <h:column> <f:facet name="header">Supprimer</f:facet> <h:commandLink onclick="return confirmer()" actionListener="#{affectationBean.deleteArticle}"> <h:outputText value="Supprimer"></h:outputText> <f:param name="id" value="#{o.article.idArticle}"></f:param> </h:commandLink> </h:column> </h:dataTable> <h:commandButton value="Affecter " actionListener="#{affectationBean.validerAffectation}" ></h:commandButton> </h:form> </body> </html>
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122 @ManagedBean @SessionScoped public class AffectationBean { private Integer idAffectation; private String entite; private String date; private String quantite; //METIER ENTITE ==== DIVISION : EntiteM entiteM = new EntiteM(); private List<Entite> listDivision; //Metier AFFECTATION : AffectationM affectationM = new AffectationM(); //LISTE DES ARTICLES: private Article article; private List<Article> articles; ArticleM articleM = new ArticleM(); //AJOUTER LES ARTICLES SELECTIONNES DANS UNE LISTE private List<SelectedItems> itemses; @PostConstruct public void initBean() { listDivision = entiteM.findAll(); articles = articleM.findAll(); } public String getEntite() { return entite; } public void setEntite(String entite) { this.entite = entite; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } public List<Entite> getListDivision() { return listDivision; } public void setListDivision(List<Entite> listDivision) { this.listDivision = listDivision; } public Article getArticle() { return article; } public void setArticle(Article article) { this.article = article; } public List<Article> getArticles() { return articles; } public void setArticles(List<Article> articles) { this.articles = articles; } public String getQuantite() { return quantite; } public void setQuantite(String quantite) { this.quantite = quantite; } public List<SelectedItems> getItemses() { return itemses; } public void setItemses(List<SelectedItems> itemses) { this.itemses = itemses; } public void addAffectation(ActionEvent e) { String idType = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("division:divis"); Entite e1 = entiteM.findById(Integer.valueOf(idType)); Affectation affectation = new Affectation(); affectation.setDate(date); affectation.setEntite(e1); affectationM.Add(affectation); } public void addInList(ActionEvent e) { SelectedItems items = new SelectedItems(); String idArt = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("article:art"); items.setArticle(articleM.findById(Integer.valueOf(idArt))); items.setQuantite(Integer.valueOf(quantite)); itemses.add(items); } public void deleteArticle(ActionEvent e) { Integer idArticle = Integer.valueOf(getParam("id")); System.out.println("id article à supprimer : "+idArticle); for(SelectedItems a1: itemses) { if(idArticle == a1.getArticle().getIdArticle()) itemses.remove(a1); System.out.println("Succès"); } } public String getParam(String name) { FacesContext fc = FacesContext.getCurrentInstance(); Map<String , String> param = fc.getExternalContext().getRequestParameterMap(); return param.get(name); } }
Partager