IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

probleme de bean scope


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 13
    Par défaut probleme de bean scope
    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" />

  2. #2
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    En codant ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.setAttribute("listArticles", alArticles);
    tu mets listArticles dans le scope request et non session.

    Donc, dans le logic:iterate, il faut mettre scope="request" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <logic:iterate id="ligne" name="listArticles" scope="request">

  3. #3
    Membre averti
    Inscrit en
    Août 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 13
    Par défaut
    merci pour ta reponse mais j'ai presque la mm erreur
    qd je fait request

    javax.servlet.ServletException: Cannot find bean: "listArticles" in scope: "request"

  4. #4
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Je n'avais pas fait attention à ton struts-config.xml mais tu as défini plusieurs actions de path /liste.
    Il faut en laisser une seule.

    En plus, tu donnes le code de l'Action liste mais dans le struts-config.xml, celle dans laquelle sont définis les forward afficherListeArticles et afficherErreurs est l'Action ListeArticlesAction.

    Il faudrait donc savoir quelle Action tu exécutes, liste ou ListeArticlesAction.

  5. #5
    Membre averti
    Inscrit en
    Août 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 13
    Par défaut
    j'ai essayé de faire des tests. c'est pour ça que j'ai les 2 actions.
    mon nouveau fichier struts-config.xml :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      <action-mappings>
            <action path="/liste" type="com.myapp.struts.ListeArticlesAction">
            <forward name="afficherListeArticles" path="listarticles.jsp"/>
            <forward name="afficherErreurs" path="erreurs.jsp"/>
    </action>
    et j'ai renommé Action liste par ListeArticlesAction
    et j'ai toujours le même probleme

  6. #6
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Pour afficher la page, tu fais bien appel à l'Action de path /liste et non à la jsp ?

Discussions similaires

  1. JSP Servlet et bean scope request
    Par yodutouf dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 24/09/2007, 08h50
  2. problem struts bean formulaire
    Par am.adnane dans le forum Struts 1
    Réponses: 2
    Dernier message: 05/06/2007, 14h21
  3. Probleme de bean dans un jsp
    Par chicore69 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 28/11/2006, 17h19
  4. probleme avec <bean:write
    Par mitje dans le forum Struts 1
    Réponses: 1
    Dernier message: 06/10/2006, 15h36
  5. [Struts] Problème de bean:message
    Par boukay dans le forum Struts 1
    Réponses: 9
    Dernier message: 21/06/2005, 16h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo