salut tout le monde
je débute avec STRUTS et j'essaie d'Exploiter une source de données mais j'ai rencontré un pb.

Voila ce que j'ai comme erreur :
javax.servlet.ServletException: Cannot find bean: "listArticles" in scope: "session"
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
org.apache.jsp.listearticles_jsp._jspService(listearticles_jsp.java:159)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
liste.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
public class liste extends Action {
    public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
// lit le contenu de la table articles d'une connexion
// réalisée à l'init du contexte
// on récupère a source de données dbarticles
DataSource dataSource = this.getDataSource(request, "dbarticles");
if (dataSource == null) {
// la source de données n'a pas pu être créée
ActionErrors erreurs = new ActionErrors();
erreurs.add("dbarticles", new ActionError("erreur.dbarticles","La source de données n'a pu être créée"));
this.saveErrors(request, erreurs);
return mapping.findForward("afficherErreurs");
}
 
Connection connexion = null;
Statement st = null;
ResultSet rs = null;
String requête = null;
ArrayList alArticles = new ArrayList();
try {
 
connexion = dataSource.getConnection();
 
requête = "select nom_etud, cin_etud stockMinimum from etudiant";
 
st = connexion.createStatement();
rs = st.executeQuery(requête);
// exploiter les résultats
while (rs.next()) {
// enregistrer la ligne courante
alArticles.add(new String[] { rs.getString("nom_etud"),rs.getString("cin_etud") });
// ligne suivante
} 
rs.close();
st.close();
} catch (Exception ex) {
// des erreurs se sont produites
ActionErrors erreurs = new ActionErrors();
erreurs.add("dbarticles", new ActionError("erreur.dbarticles"));
this.saveErrors(request, erreurs);
return mapping.findForward("afficherErreurs");
} finally {
 
try {
connexion.close();
} catch (Exception ignored) {
}
}
// c'est bon
request.setAttribute("listArticles", alArticles);
return mapping.findForward("afficherListeArticles");
} //execute
} //classe
listearticles.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
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%
// listarticles : ArrayList dans la requête
// listArticles(i) : tableau (String[5]) de 5 éléments
%>
<html>
<head>
<title>DataSource Struts</title>
</head>
<body>
<h3>Liste des articles</h3>
<hr>
<table border="1">
<logic:iterate id="ligne" name="listArticles" scope="session">
<tr>
<logic:iterate id="colonne" name="ligne">
<td><bean:write name="colonne"/></td>
</logic:iterate>
</tr>
</logic:iterate>
</table>
</body>
</html>
struts-config.xml

Code xml : 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
<struts-config>
    <data-sources>
<data-source key="dbarticles">
<set-property property="driverClass" value="com.mysql.jdbc.Driver"></set-property>
<set-property property="url" value="jdbc:mysql://localhost/master_ql"></set-property>
<set-property property="user" value="admarticles"></set-property>
<set-property property="password" value="mdparticles"></set-property>
<set-property property="minCount" value="2"></set-property>
<set-property property="maxCount" value="5"></set-property>
</data-source>
</data-sources>
    <form-beans>
 
    </form-beans>
 
    <global-exceptions>
 
    </global-exceptions>
 
    <global-forwards>
        <forward name="welcome"  path="/Welcome.do"/>
    </global-forwards>
 
    <action-mappings>
        <action path="/Welcome" forward="/welcomeStruts.jsp"/>
        <action path="/liste" type="com.myapp.struts.ListeArticlesAction" scope="request">
        <forward name="afficherListeArticles" path="listarticles.jsp"/>
        <forward name="afficherErreurs" path="erreurs.jsp"/>
        </action>
        <action path="/liste" type="com.myapp.struts.ListeArticlesAction"/>
        <action path="/liste" type="com.myapp.struts.liste"/>
    </action-mappings>
 
    <controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"/>
 
    <message-resources parameter="com/myapp/struts/ApplicationResource"    
     null="false" />