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 pour lister une table acces base


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Août 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 6
    Par défaut probleme pour lister une table acces base
    Bonjour tout le monde je sais que d'aucun vont me dire que c'est une question deja posé est resolu mais j'ai un bleme j'ai mis tous les *.jar dans mon appli comme commons-dbcp.jar et common-pool.jar struts_legacy.jar etc..; dans mes lib

    je travail avec tomcat
    dans mon fichier struts-config.xml
    j'ai ceci

    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
     
      <data-sources >
        <data-source type="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" key="org.apache.struts.action.DATA_SOURCE">
          <set-property property="minCount" value="10" />
          <set-property property="password" value="teste" />
          <set-property property="maxCount" value="500" />
          <set-property property="user" value="root" />
          <set-property property="driverClass" value="com.mysql.jdbc.Driver" />
          <set-property property="description" value="Data" />
          <set-property property="url" value="jdbc:mysql://localhost:3306/testedb" />
          <set-property property="autoCommit" value="true" />
          <set-property property="readOnly" value="false" />
          <set-property property="loginTimeout" value="60" />
        </data-source>
      </data-sources>
    mon fichier mydatasourceSuccessful.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
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
    <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
    <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
    <html:html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <title> JSP LISTE </title>
    </head>
    <body>
     
    <h1> Bienvenue</h1>
    <logic:notPresent name ="allMyCustomers">
    <h2> Datasource not in scope </h2>
    </logic:notPresent>
    <logic:present name ="allMyCustomers">
       <logic:empty name="allMyCustomers">
          <h2> Datasource in scope but no data found</h2>
       </logic:empty>
    </logic:present>
    <logic:present name="allMycustomers">
       <p>liste des utilisateurs</p>
       <table border="1">
     
        <tbody>
           <logic:iterate id="customer" name="allMyCustomers">
              <tr>
                <td><bean:write name="customer" property="id" /></td> 
                <td><bean:write name="customer" property="login" /></td>
              </tr>    
            </logic:iterate>
         </tbody>
         </table>
         </logic:present>
         <p>
         <html:link action="/logout" linkName="Log me out">Logout</html:link>
    </body>
    </html:html>
    mon bean 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
     
    package com.spriveseng.seysoo.asm.struts.action;
     
    public class row {
     
        /** Creates a new instance of Row */
        private String id;
        private String login;
     
        /** Creates a new instance of Row */
        public row(String id, String login) {
            this.id = id;
            this.login = login;
        }
     
        public String getId() {
            return id;
        }
     
        public void setId(String id) {
            this.id = id;
        }
     
        public String getLogin() {
            return login;
        }
     
        public void setLogin(String login) {
            this.login = login;
        }
     
    }
    mon fichier DatasourceConnectionAction.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
     
    package com.spriveseng.seysoo.asm.struts.action;
    import javax.servlet.http.*;
     
    import org.apache.struts.action.*;
     
    import java.sql.*;
    import java.util.ArrayList;
    import javax.sql.*;
     
    import org.apache.struts.Globals;
    import javax.servlet.http.HttpServletRequest;
    public class DatasourceConnectionAction extends Action {     
        private DataSource dataSource;
        public ActionForward execute(
                    ActionMapping mapping,
                    ActionForm form,
                    HttpServletRequest request,
                    HttpServletResponse response)
                throws Exception {
     
                DataSource dataSource;
                ArrayList customerList = new ArrayList();
                final String SUCCESS = "success";
     
            HttpSession session = request.getSession();
            /** Ici, la méthode qui fait la connection à la DataSource est appelée: */
            customerList = getCustomers() ;
            /** Ici, nous mettons le customerList dans le scope, pour pouvoir l'utiliser dans la page JSP: */
            if(customerList  != null){
                session.setAttribute("allMyCustomers" , customerList);
            }
            return (mapping.findForward(SUCCESS));
        }
        private ArrayList getCustomers(){
            Connection conn = null;
            Statement  stmt = null;
            PreparedStatement prpStmt = null;
            ResultSet rs = null;
            StringBuffer  resultString ;
     
            ArrayList<row> customerList = null;
            try{
                /** Ici, 'empTable' est associé à la clef de la DataSource dans struts-config.xml: */
     
                DataSource dataSource =
                    (DataSource)servlet.getServletContext()
                            .getAttribute(Globals.DATA_SOURCE_KEY);
     
                conn = dataSource.getConnection();
                String sqlQuery =  "select id,login from acces order by login";
                prpStmt = conn.prepareStatement(sqlQuery);
                rs = prpStmt.executeQuery();
     
                /** Ici, nous avons mis le champs 4 (le nom) et le champs 7 (la ville) dans la customerList: */
                while (rs.next()) {
                    customerList.add(new row(rs.getString(1), rs.getString(2)));
                }
                rs.close();
     
            } catch ( SQLException e ) {
                System.err.println("SQL Exception occured while accessing the table" );
                e.printStackTrace();
                return null;
     
            } catch ( Exception e ) {
                e.printStackTrace();
                return null;
            }
     
            return customerList;
        }
    }
    puis pour tester tout ceci je fais le mapping suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <action path="/MyDS" type="com.spriveseng.seysoo.asm.struts.action.DatasourceConnectionAction">
         <forward name="success" path="/AccueilJSP/mydatasourceSuccessful.jsp"/>
        </action>
    j obtiens ceci
    comme resultat

    Datasource not in scope
    si quelqu un pourrai m'aider
    merci d'avance

  2. #2
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    Change

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataSource dataSource = (DataSource)servlet.getServletContext().getAttribute(Globals.DATA_SOURCE_KEY);
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataSource dataSource = getDataSource(request);
    Et si j'étais toi je définirais un form pour faire plus simple. Car sinon il faut peut-etre (je n'en sur pas sur à 200%), mettre "scope = session" dans tes tags "logic"

Discussions similaires

  1. fonction with pour lister une table dans excel
    Par gorjette dans le forum VBA Access
    Réponses: 2
    Dernier message: 25/09/2010, 09h48
  2. [MySQL] Probleme pour intérroger une base avec "%" (Tous)
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 03/04/2008, 13h03
  3. Problème pour exporter une table Access vers Excel
    Par PAULOM dans le forum Access
    Réponses: 22
    Dernier message: 02/05/2006, 13h42
  4. Réponses: 3
    Dernier message: 22/04/2006, 06h05
  5. Probleme pour reattacher une base
    Par bisounours75012 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 20/02/2006, 15h01

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