Bonjour,
Essayant de me familiariser depuis peu avec Struts associé à Hibernate ou autre frameworks sur la persistance.
Je butte encore sur des choses qui à mon sens me paraissent simples encore de struts.
Si quelqu'un pouvait jeter un coup d'oeil sur mon code et me dire ce qui ne va pas?
Je ne parviens pas à afficher un tableau qui devrait afficher le contenu d'une table. (Utilisation de STRUTS+Hibernate)
Mon message d'erreur tout con est le suivant...
Qu'est ce que j'ai bien pu oublier ou n'avoir pas compris... Enfin pas compris, certainement beaucoup de chose.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2javax.servlet.jsp.JspException: No getter method for property id_acav of bean MIFetatACAV
jsp
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194 <%@ page contentType="text/html; charset=UTF-8"%> <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%> <%@ taglib uri="/tags/struts-logic" prefix="logic"%> <%@ taglib uri="/tags/struts-bean" prefix="bean"%> <!-- <%@ page import="INTgestiondonnee.produit.metier.entite.MifProduit" %> --> <SCRIPT LANGUAGE="JavaScript"> Today = new Date; Jour = Today.getDate(); Mois = (Today.getMonth())+1; Annee = Today.getFullYear(); Message = Jour + "/" + Mois + "/" + Annee; </SCRIPT> <script language="javascript"> function afficherListeFlux(){ document.forms[0].action = "rechercheFlux.do?rechecher=flux"; document.forms[0].submit(); } function afficherDetailFlux(num){ document.forms[0].action = "rechercheFlux.do?rechecher=flux&numeroFlux="+num; document.forms[0].submit(); } function afficherOrder(){ obj = document.getElementById("detailFluxSelected").style; obj.visibility='hidden'; } </script> <head> <title><bean:message key="title.name"/></title> <link rel="stylesheet" type="text/css" media="screen" title="1024x768" href="./styles/MIF_main.css" /> <link rel="stylesheet" type="text/css" media="screen" title="cadre" href="./styles/MIF_cadre.css" /> <link rel="stylesheet" type="text/css" media="screen" title="menu" href="./styles/MIF_menu.css" /> <link rel="stylesheet" type="text/css" href="./styles/datepicker.css" /> <script type="text/javascript" src="./scripts/datepicker.js"></script> <script type="text/javascript" src="./scripts/styleswitcher.js"></script> <script type="text/javascript" src="./scripts/table.js"></script> <script type="text/javascript" src="./scripts/script.js"></script> </head> <body> <html:form action="rechercheFlux.do"> <table id='entete' cellpadding='0' cellspacing='0' > <tr> <td id='enteteLogo'> </td> <td colspan='2' id='enteteContext'>Rapprochement>Etat ACAV</td> <td colspan='2' id='enteteSeDeconnecter'><bean:write name="cartoucheBean" property="name" scope="session" /> <bean:write name="cartoucheBean" property="surName" scope="session" /> \ <a href="/INTCLINFOC/index.jsp"><bean:message key="cartouche.deconnecter"/></a></td> <td> </td> </tr> <tr> <td rowspan='2' id='enteteNomApplication'><img src='./img/MIF_Fond-Blanc.gif' width='130'/></td> <td id='typeImport'><nobr><bean:message key="cartouche.dernier.import.actif"/></nobr></td> <td id='typeImport'><nobr><bean:message key="cartouche.prochain.import.actif"/></nobr></td> <td id='typeImport'><nobr><bean:message key="cartouche.dernier.import.passif"/></nobr></td> <td id='typeImport'><nobr><bean:message key="cartouche.prochain.import.passif"/></nobr></td> <!-- <td> </td> --> </tr> <tr> <td id='heureImport'><bean:write name="cartoucheBean" property="lastImportActif" scope="session" /></td> <td id='heureImport'><bean:write name="cartoucheBean" property="nextImportActif" scope="session"/></td> <td id='heureImport'><bean:write name="cartoucheBean" property="lastImportPassif" scope="session"/></td> <td id='heureImport'><bean:write name="cartoucheBean" property="nextImportPassif" scope="session"/></td> <!-- <td> </td> --> </tr> </table> <table id="corp"> <tr> <td id="tdMenu"> <!-- menu --> <table> <tr> <td> <dl class="background-image border-around"> <div id="cadre"> <dt><bean:message key="menu.passif"/></dt> <dd><a href="/INTCLINFOC/initRechercheCarnetDOrdres.do"><bean:message key="menu.carnet.ordre"/></a></dd> <dd><a href=""><bean:message key="menu.recherche.ordre"/></a></dd> <dd><a href="/INTCLINFOC/rechercheFlux.do"><bean:message key="menu.recherche.flux"/></a></dd> </div> <div id="cadre"> <dt><bean:message key="menu.actif"/></dt> <dd><a href=""><bean:message key="menu.avis.oper"/></a></dd> </div> <div id="cadre"> <dt><bean:message key="menu.rapprochement"/></dt> <dd><a href="/INTCLINFOC/initEtatDesStocks.do"><bean:message key="menu.etat.stocks"/></a></dd> <dd><a href="/INTCLINFOC/initEtatACAV.do"><bean:message key="menu.etat.acav"/></a></dd> </div> <div id="cadre"> <dt><bean:message key="menu.administration"/></dt> <dd><a href="/INTCLINFOC/initRecherche.do"><bean:message key="menu.utilisateurs"/></a></dd> <dd><a href="/INTCLINFOC/initRechercheFrequenceImport.do"><bean:message key="menu.frequence.import"/></a></dd> <dd><a href=""><bean:message key="menu.import.manuel"/></a></dd> <dd><a href="/INTCLINFOC/initRechercheDonnee.do"><bean:message key="menu.gestion.donnees"/></a></dd> </div> </dl> </td> </tr> </table> <div id="contact"> <table> <tr><td align="center"> <logic:present name="cartoucheBean" scope="session"> <bean:write name="cartoucheBean" property="name" scope="session" /> <bean:write name="cartoucheBean" property="surName" scope="session" /> </logic:present> </td></tr> <tr><td><a href="../index.html"><bean:message key="cartouche.deconnecter"/></a></td></tr> </table></div> </td> <td colspan="4" id="CorpsDyn"> <!-- contenu de la page --> <div id="CorpsPage"> <div id="legend"> </div> <div id="legend">Rapprochement ACAV</div> <div id="legend"> </div> <div> </div> <div class="texteVertMarge">Rapprochement ACAV au <b><SCRIPT LANGUAGE="JavaScript"> document.write(Message); </SCRIPT></b></div> <div> </div> <div> </div> <div class="texteVertMarge">Date d'import du passif : </div> <div> </div> <div class="texteVertMarge">Date d'import de l'actif : </div> <div> </div> <div> <div > <table class="table-autopage:6 table-page-number:t1page table-page-count:t1pages table-stripeclass:alternative tablelist"> <thead> <tr class="tdhead"> <td>Numéro</td> <td>Support</td> <td>Passif</td> <td >Actif</td> <td >En attente</td> </tr> <tr class="tdhead"> <td colspan="6"><div "id="legend"> </div></td> </tr> </thead> <tbody> <logic:iterate id="MIFetatACAV" name="ListEtatACAV" > <tr> <td><bean:write name="MIFetatACAV" property="id_acav"/></td> <td></td> <bean:write name="MIFetatACAV" property="numero"/></a></td> <td><bean:write name="MIFetatACAV" property="support"/></td> <td><bean:write name="MIFetatACAV" property="passif"/></td> <td><bean:write name="MIFetatACAV" property="actif"/></td> <td><bean:write name="MIFetatACAV" property="en_attente"/></td> <td></td> <td></td> <td></td> </tr> </logic:iterate> </tbody> <tfoot> <tr class="tdhead"> <td colspan="6" style=text-align:center;></td> </tr> </tfoot> </table> <div id="espace"> </div> </div> </div> </td> </tr> </table> </html:form> </body>
action(MifEtatACAVAction.java)
entite(MIFetatACAV.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
89
90
91 package INTetatACAV.etatACAV.action; import intCommunBean.cartouche.MifCartoucheEnteteBean; import intPresentation.flux.actionForm.MifRechercheFluxActionForm; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.Iterator; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.hibernate.HibernateException; import org.hibernate.Session; import INTetatACAV.etatACAV.actionForm.MifRechercheEtatACAVActionForm; import INTetatACAV.etatACAV.metier.entite.MIFetatACAV; import INTetatACAV.etatACAV.metier.manager.MifetatACAVManager; import INTetatACAV.etatACAV.metier.usecase.MifEtatACAVUC; import INTutil.HibernateUtil; import INTcommun.MifUtilitaireUC; public class MifEtatACAVAction extends Action { @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // MifRechercheEtatACAVActionForm mifRechercheFEtatACAVActionForm = (MifRechercheEtatACAVActionForm)form; List listEtatACAVResult = new ArrayList(); Long id_acav=null; Long numero=null; String support=null; Double passif=null; Double actif=null; Double en_attente=null; try{ HttpSession session = request.getSession(); MifUtilitaireUC mifUtilitaireUC = new MifUtilitaireUC(); String [] tabDateImportString = new String[4]; MifCartoucheEnteteBean paramCartouche=(MifCartoucheEnteteBean)session.getAttribute("cartoucheBean"); if(paramCartouche == null){ tabDateImportString = mifUtilitaireUC.getDateImportActifPassif(); // remplir les informations de la cartouche MifCartoucheEnteteBean mifCartoucheEnteteBean = new MifCartoucheEnteteBean(); mifCartoucheEnteteBean.setLastImportActif(tabDateImportString[0]); mifCartoucheEnteteBean.setNextImportActif(tabDateImportString[1]); mifCartoucheEnteteBean.setLastImportPassif(tabDateImportString[2]); mifCartoucheEnteteBean.setNextImportPassif(tabDateImportString[3]); mifCartoucheEnteteBean.setName((String)session.getAttribute("name")); mifCartoucheEnteteBean.setSurName((String)session.getAttribute("surName")); session.setAttribute("cartoucheBean", mifCartoucheEnteteBean); } listEtatACAVResult = MifEtatACAVUC.rechercheEtatACAV(id_acav, numero, support, passif, actif, en_attente); // Collection listACAV = (Collection)service.getOutpute(MifetatACAVManager.listEtatACAV) request.setAttribute("ListEtatACAV", listEtatACAVResult); System.out.println("listEtatACAVResult page action :"+ listEtatACAVResult); }catch (Exception e){ e.printStackTrace(); return mapping.findForward("Error"); } // TODO Auto-generated method stub return mapping.findForward("Succes"); } }
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 package INTetatACAV.etatACAV.metier.entite; public class MIFetatACAV { private Long id_acav; private Long numero; private String support; private Double passif; private Double actif; private Double en_attente; public MIFetatACAV(){} public MIFetatACAV(Long id_acav, Long numero, String support, Double passif, Double actif, Double en_attente){ super(); this.id_acav = id_acav; this.numero = numero; this.support = support; this.passif = passif; this.actif = actif; this.en_attente = en_attente; } public Long getId_acav() { return id_acav; } public void setId_acav(Long id_acav) { this.id_acav = id_acav; } public Long getNumero() { return numero; } public void setNumero(Long numero) { this.numero = numero; } public String getSupport() { return support; } public void setSupport(String support) { this.support = support; } public Double getPassif() { return passif; } public void setPassif(Double passif) { this.passif = passif; } public Double getActif() { return actif; } public void setActif(Double actif) { this.actif = actif; } public Double getEn_attente() { return en_attente; } public void setEn_attente(Double en_attente) { this.en_attente = en_attente; } }
manager(MifetatACAVManager.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 package INTetatACAV.etatACAV.metier.manager; import java.util.ArrayList; import java.util.List; import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import INTutil.HibernateUtil; public class MifetatACAVManager { public List rechercheEtatACAV(Long id_acav, Long numero, String support, Double passif, Double actif, Double en_attente){ Session session = HibernateUtil.getSessionFactory().getCurrentSession(); Transaction trx = session.beginTransaction(); List listEtatACAV = new ArrayList(); String select =""; String from = ""; String requeteHQL=""; try{ select = " select id_acav as id_acav ," +" numero as numero," +" support as support," +" passif as passif," +" actif as actif," +" en_attente as en_attente" ; from = " from MIFetatACAV" ; requeteHQL = select+from+" order by 1"; Query query = session.createQuery(requeteHQL); listEtatACAV = query.list(); System.out.println("tete :"+listEtatACAV); }catch (HibernateException he){ he.printStackTrace(); return null; }catch (Exception e){ e.printStackTrace(); return null; }finally{ session.close(); } return listEtatACAV; } }
usecase (MifEtatACAVUC.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 package INTetatACAV.etatACAV.metier.usecase; import java.util.ArrayList; import java.util.List; import INTetatACAV.etatACAV.metier.manager.MifetatACAVManager; public class MifEtatACAVUC { public static List rechercheEtatACAV(Long id_acav, Long numero, String support, Double passif, Double actif, Double en_attente){ List listEtatACAV = new ArrayList(); MifetatACAVManager mifEtatACAVManager = new MifetatACAVManager(); List listEtatACAVResult = new ArrayList(); try{ // Appel de la fonction rechercheEtatACAV listEtatACAV = mifEtatACAVManager.rechercheEtatACAV(id_acav, numero, support, passif, actif, en_attente); System.out.println("listEtatACAV:"+listEtatACAV); System.out.println("listEtatACAVResult:"+listEtatACAVResult); }catch(Exception e){ e.printStackTrace(); return null; } return listEtatACAV; } }
Partager