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 :

[Supprimer ligne de table] Probleme pour recuperer l'id de ma table


Sujet :

Struts 1 Java

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 167
    Points : 85
    Points
    85
    Par défaut [Supprimer ligne de table] Probleme pour recuperer l'id de ma table
    Bonjour,

    Je manipule en ce moment une base de donnees a l'aide de struts sous NetBeans.

    J'arrive a ajouter une table mais pour ce qui est de supprimer je n'y arrive pas car il faut pour cette requete que je recupere mon id de la table pour ensuite supprimer la bonne ligne du tableau de resultat.

    J'ai un fichier datasourceArticle.jsp qui a l'aide d'un logic:iterate affiche le contenu de ma table article. Pour chaque ligne du tableau je propose a l'utilisateur de supprimer (et modifier mais c'est le meme probleme) la ligne.

    Je dispose egalement d'un classe java ActionFormArticle aui contient les getter et setter et puis finalement d'une classe DatasourceArticle.java pour chaque operation qui va executer la requete.

    Donc par exemple pour l'ajout, j'ai une classe DatasourceAjoutArticle.java.

    Avant de vous illustrer mon probleme avec mon code, je precise que mon probleme est que je n'arrive pas a supprimer ma ligne du tableau vu que je suis cense recuperer mon idArticle du logic:iterate pour l'implementer dans ma requete : DELETE FROM article WHERE idArticle = '"+monIdRecupere+"' quelque chose comme ca.

    Voila, voici le code associe (mon action supprimer a pour path /del) :
    Je ne vous fait part que de code interessant.


    datasourceArticle.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
     
    <logic:present name = "ArticleCustomers">
            <div id = "titre">Nos articles :</div>
            <br><br>
     
            <div id="texte">
            <a href="./ajouterArticle.jsp">Add a Article</a>
            </div>
     
            <table border="1" class="tableau" align="center">
                <thead>
                    <tr class="headTableau">
                        <th><bean:message key="customer.designation" /></th>
                        <th><bean:message key="customer.prix" /></th>
                        <th>Modify</th>
                        <th>Delete</th>
                    </tr>
                </thead>
                <tbody>
                    <logic:iterate id="customer" name="ArticleCustomers">
                        <tr class="ligneTableau">
                            <td><bean:write name="customer" property="designation" /></td>
                            <td><bean:write name="customer" property="prix" /></td>
                            <td><html:link action="/modif" linkName="Modify">Modify</html:link></td>
                            <td><html:link action="/del" linkName="Delete">Delete</html:link></td>
                        </tr>
                    </logic:iterate>
                </tbody>
            </table>
        </logic:present>
    NewStrutsActionFormArticle.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
     
    public class NewStrutsActionFormArticle extends org.apache.struts.action.ActionForm {
     
        private String designation;
        private int prix;
        private int idArticle;
     
     
        /**
         * @return
         */
        public String getDesignation() {
            return designation;
        }
     
        /**
         * @param string
         */
        public void setDesignation(String string) {
            designation = string;
        }
     
        /**
         * @return
         */
        public int getPrix() {
            return prix;
        }
     
        /**
         * @param i
         */
        public void setPrix(int i) {
            prix = i;
        }
     
        public int getIdArticle() {
            return idArticle;
        }
     
        /**
         * @param i
         */
        public void setIdArticle(int i) {
            idArticle = i;
        }
     
        /**
         *
         */
        public NewStrutsActionFormArticle() {
            super();
            // TODO Auto-generated constructor stub
        }
     
        public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
            ActionErrors errors = new ActionErrors();
            if (getDesignation() == null || getDesignation().length() < 1) {
                errors.add("designation", new ActionMessage("error.designation.required"));
                // TODO: add 'error.name.required' key to your resources
            }
            return errors;
        }
    }
    DatasourceDelArticle.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
     
    public ActionForward execute(ActionMapping mapping, ActionForm  form,
                HttpServletRequest request, HttpServletResponse response)
                throws Exception {
     
     
     
     
                String designation = null;
                int prix = 0;
                int idArticle = 0;
     
        // Cible par defau
          // Utilisation de LookupForm pour recuperer les parametres de la requete
        if ( form != null ) {
          NewStrutsActionFormArticle lookupForm = (NewStrutsActionFormArticle)form;
          designation = lookupForm.getDesignation();
          prix = lookupForm.getPrix();
          idArticle = lookupForm.getIdArticle();
     
          req = "DELETE FROM article WHERE idArticle = '"+idArticle+"' ";
        }
     
     
     
     
     
            HttpSession session = request.getSession();
            /** Ici, la méthode qui fait la connection à la DataSource est appelée: */
            getCustomers() ;
            /** Ici, nous mettons le customerList dans le scope, pour pouvoir l'utiliser dans la page JSP: */
            return (mapping.findForward(SUCCESS));
        }
     
        private void getCustomers(){
            Connection conn = null;
            Statement  stmt = null;
            PreparedStatement prpStmt = null;
            StringBuffer  resultString ;
     
            try{
                /** Ici, 'empTable' est associé à la clef de la DataSource dans struts-config.xml: */
                dataSource = (DataSource)servlet.getServletContext().getAttribute("empTable");
     
                conn = dataSource.getConnection();
     
                prpStmt = conn.prepareStatement(req);
                prpStmt.executeUpdate();
     
                /** Ici, nous avons mis le champs 4 (le nom) et le champs 7 (la ville) dans la customerList: */
     
            } catch ( SQLException e ) {
                System.err.println("SQL Exception occured while accessing the table" );
                e.printStackTrace();
     
     
            } catch ( Exception e ) {
                e.printStackTrace();
     
            }
     
     
        }
    struts-config.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <action input="/dataSourceArticle.jsp"
                    name="NewStrutsActionFormArticle"
                    path="/del" 
                    scope="session"
                    type="com.myapp.struts.DatasourceDelArticle">
                <forward name="success" path="/deleteArticleSuccess.jsp"/>
            </action>
            <action forward="/loginOut.jsp" path="/logout"/>
    Voila je suis sur que c'est pas dure du tout comme probleme pour les connaisseurs mais vu que je debute...

    Merci de m'aider !

    Andrew

  2. #2
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Dans le lien, il suffit de passer l'idArticle en paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:link action="/del" paramName="customer" paramId="idArticle" paramProperty="idArticle">
       Delete
    </html:link>
    et dans l'Action, pour récupérer l'idArticle passé en paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String idArticle=request.getParameter("idArticle");

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 167
    Points : 85
    Points
    85
    Par défaut
    J'ai effectue ce que vous m'avez dit mais la suppression ne marche toujours pas

    J'ai remarque que lorsque je met le curseur sur le lien "Delete" a chaque fois j'ai une adresse de type :

    http://localhost:8084/MyVideoStoreAp...do?idArticle=0

    avec l'idArticle toujours a 0.

    Voici pour illustrer le code apres modification :

    dataSourceArticle.jsp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <logic:iterate id="customer" name="ArticleCustomers">
                        <tr class="ligneTableau">
                            <td><bean:write name="customer" property="designation" /></td>
                            <td><bean:write name="customer" property="prix" /></td>
                            <td><html:link action="/modif" linkName="Modify">Modify</html:link></td>
                            <td><html:link action="/del" paramName="customer" paramId="idArticle" paramProperty="idArticle" linkName="Delete">Delete</html:link></td>
                        </tr>
    </logic:iterate>
    DatasourceDelArticle.java :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if ( form != null ) {
          NewStrutsActionFormArticle lookupForm = (NewStrutsActionFormArticle)form;
          designation = lookupForm.getDesignation();
          prix = lookupForm.getPrix();
          idArticle = Integer.parseInt(request.getParameter("idArticle"));
     
          req = "DELETE FROM article WHERE idArticle = '"+idArticle+"' ";
        }
    Voila Y-a-t'il quelque chose que je n'ai pas bien fait ?

  4. #4
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Lors de la constitution de la liste ArticleCustomers, l'idArticle est-il bien renseigné pour chaque objet ?

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 167
    Points : 85
    Points
    85
    Par défaut
    En effet, je ne le recuperais pas, j'ai change ceci et maintenant je recupere bien mon idArticle dans l'adresse.

    Mais, le lien ne marche toujours pas. Normalement je suis cence arrive sur une page de succes et je n'y arrive pas.

    Je dois donc avoir un probleme avec mon etat "success" du struts-config qui n'est jamais atteinds.

    Je ne vois pas pourquoi je ne rentre pas dans cet etat de succes de DatasourceDelArticle.java, peut-etre vous en verrez plus clair avec cette erreur.

    struts-config :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <action path="/lst_article" type="com.myapp.struts.DatasourceArticle">
                <forward name="success" path="/dataSourceArticle.jsp"/>
    </action>
    
    <action input="/dataSourceArticle.jsp"
                    name="NewStrutsActionFormArticle"
                    path="/del" 
                    scope="session"
                    type="com.myapp.struts.DatasourceDelArticle">
                <forward name="success" path="/deleteArticleSuccess.jsp"/>
    </action>
    Ci dessous la page loginSuccessful.jsp qui propose un lien pour afficher le contenu de la table article avec ses operations possibles ainsi que sa classe associe DatasourceArticle.java ou je ne recuperais justement pas avant l'idArticle.

    Cette page et sa classe precede celles decrite dans les messages precedents

    Je vous donne leurs code au cas ou le probleme remontrait jusque la.

    loginSuccessful.jsp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <html:link action="/lst_article" linkName="Afficher la liste des articles">Liste des articles</html:link><br>
    DatasourceArticle.java : (c'est la que je ne recuperais pas l'idArticle)

    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 DatasourceArticle extends Action {
        private DataSource dataSource;
        public ArrayList customerList = new ArrayList();
        private final static String SUCCESS = "success";
     
        public ActionForward execute(ActionMapping mapping, ActionForm  form,
                HttpServletRequest request, HttpServletResponse response)
                throws Exception {
            this.customerList.clear();
            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("ArticleCustomers" , customerList);
            }
            return (mapping.findForward(SUCCESS));
        }
     
        private ArrayList getCustomers(){
            Connection conn = null;
            Statement  stmt = null;
            PreparedStatement prpStmt = null;
            ResultSet rs = null;
            StringBuffer  resultString ;
     
            try{
                /** Ici, 'empTable' est associé à la clef de la DataSource dans struts-config.xml: */
                dataSource = (DataSource)servlet.getServletContext().getAttribute("empTable");
     
                conn = dataSource.getConnection();
                String sqlQuery = "SELECT * FROM article ORDER BY designation";
                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 Article(rs.getInt(1), rs.getString(2), rs.getInt(3)));
                }
                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;
        }
    }
    Voila, peut-etre savez vous pourquoi je ne rentre pas dans cet etat de succes (dans lequel je rentre pourtant lors de l'operation "ajouter" qui est tres semblabe)

    En tout cqs je suis sure qu'une fois ce petit probleme regle, ca marchera.

  6. #6
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    As-tu bien défini la variable static SUCCESS dans l'Action DatasourceDelArticle ?

  7. #7
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 167
    Points : 85
    Points
    85
    Par défaut
    Oui je l'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public class DatasourceDelArticle extends Action {
        private DataSource dataSource;
        public ArrayList customerList = new ArrayList();
        private final static String SUCCESS = "success";
        private String req = "";
    Voici le code complet de DatasourceDelArticle.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
     
    package com.myapp.struts;
     
    import javax.servlet.http.*;
    import org.apache.struts.action.*;
    import java.sql.*;
    import java.util.ArrayList;
    import javax.sql.*;
    import org.apache.struts.Globals;
     
    public class DatasourceDelArticle extends Action {
        private DataSource dataSource;
        public ArrayList customerList = new ArrayList();
        private final static String SUCCESS = "success";
        private String req = "";
     
        public ActionForward execute(ActionMapping mapping, ActionForm  form,
                HttpServletRequest request, HttpServletResponse response)
                throws Exception {
     
     
     
     
                String designation = null;
                int prix = 0;
                int idArticle = 0;
     
        // Cible par defau
          // Utilisation de LookupForm pour recuperer les parametres de la requete
     
          NewStrutsActionFormArticle lookupForm = (NewStrutsActionFormArticle)form;
          designation = lookupForm.getDesignation();
          prix = lookupForm.getPrix();
          idArticle = Integer.parseInt(request.getParameter("idArticle"));
          req = "DELETE FROM article WHERE idArticle = '"+idArticle+"' ";
     
     
     
     
     
     
            HttpSession session = request.getSession();
            /** Ici, la méthode qui fait la connection à la DataSource est appelée: */
            getCustomers() ;
            /** Ici, nous mettons le customerList dans le scope, pour pouvoir l'utiliser dans la page JSP: */
            return (mapping.findForward(SUCCESS));
        }
     
        private void getCustomers(){
            Connection conn = null;
            Statement  stmt = null;
            PreparedStatement prpStmt = null;
            StringBuffer  resultString ;
     
            try{
                /** Ici, 'empTable' est associé à la clef de la DataSource dans struts-config.xml: */
                dataSource = (DataSource)servlet.getServletContext().getAttribute("empTable");
     
                conn = dataSource.getConnection();
     
                prpStmt = conn.prepareStatement(req);
                prpStmt.executeUpdate();
     
                /** Ici, nous avons mis le champs 4 (le nom) et le champs 7 (la ville) dans la customerList: */
     
            } catch ( SQLException e ) {
                System.err.println("SQL Exception occured while accessing the table" );
                e.printStackTrace();
     
     
            } catch ( Exception e ) {
                e.printStackTrace();
     
            }
     
     
        }
    }

  8. #8
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Si idArticle est de type int dans la table, il ne faut pas mettre les simples quotes dans la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         req = "DELETE FROM article WHERE idArticle = "+idArticle;

  9. #9
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 167
    Points : 85
    Points
    85
    Par défaut
    Ca ne marche toujours pas lol,

    J'ai exactement le meme probleme qu'avant, pas de changements

  10. #10
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Tu n'as pas une erreur dans la console ou dans les logs du serveur ?

  11. #11
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 167
    Points : 85
    Points
    85
    Par défaut
    Dans la log j'ai ceci mais il me semble aue ce n'est qu'un warning

    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
     
    14-Apr-2008 14:29:48 org.apache.catalina.session.StandardSession writeObject
    WARNING: Cannot serialize session attribute ArticleCustomers for session 4FDE16E4A2E1D97C10D4BDF2B1E758E6
    java.io.NotSerializableException: com.myapp.struts.Article
            at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
            at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
            at java.util.ArrayList.writeObject(ArrayList.java:570)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:585)
            at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:890)
            at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1333)
            at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1284)
            at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
            at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
            at org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1445)
            at org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:920)
            at org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:516)
            at org.apache.catalina.session.StandardManager.unload(StandardManager.java:462)
            at org.apache.catalina.session.StandardManager.stop(StandardManager.java:664)
            at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4255)
            at org.apache.catalina.manager.ManagerServlet.stop(ManagerServlet.java:1226)
            at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:370)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
            at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:168)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
            at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
            at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
            at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
            at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
            at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
            at java.lang.Thread.run(Thread.java:595)

  12. #12
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Pour éviter d'avoir ce message, il faut que la classe Article implémente l'interface Serializable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class Article implements Serializable

  13. #13
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 167
    Points : 85
    Points
    85
    Par défaut
    Ok c'est fait

    Sacre probleme, je desespere

  14. #14
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    La suppression de la ligne fonctionne ou pas ?

  15. #15
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 167
    Points : 85
    Points
    85
    Par défaut
    Ben non, j'ai verifie dans la base de donnees directement et non ca ne change rien.

    Je pense que c'est vraiment un probleme avec l'etat "success" dans lequel je n'entre pas, apres pourquoi la je ne sais pas.

  16. #16
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Le delete est fait avant le forward donc ce n'est pas le forward qui est en cause.

    Si le delete ne fonctionne pas, c'est que tu as une erreur dans la méthode getCustomers().

  17. #17
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 167
    Points : 85
    Points
    85
    Par défaut
    Bon ben finalement c'est bon.

    En fait mon programme etait bon. Apres plusieurs Debug ligne par ligne le programme a enfin fonctionne et puis apres c'etait bon.

    Alors la seule explication que je donne c'est qu'il y avait une mauvaise configuration quelque part dans les struts et qu'elle s'est corrigee

    Merci a toi pour tes explications qui m'ont ammenees vers la solution !

  18. #18
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    De rien.

    Maintenant que ton problème est résolu, j'ai une remarque concernant tes Actions.

    Il faut savoir qu'une Action Struts est instanciée une seule fois et répond à toutes les requêtes utilisateurs.
    Donc, lorsqu'on déclare une variable d'instance dans une Action, celle-ci est automatiquement partagée par tous les utilisateurs.
    Une Action ne doit donc pas contenir de variables d'instance, sauf dans le cas où la variable peut être partagée.

    Tu ne devrais donc pas avoir ceci dans ton Action DatasourceDelArticle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public class DatasourceDelArticle extends Action {
     
        private DataSource dataSource;
        public ArrayList customerList = new ArrayList();
        private String req = "";
    La seule que tu peux laisser, c'est la variable static SUCCESS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        private final static String SUCCESS = "success";

  19. #19
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 167
    Points : 85
    Points
    85
    Par défaut
    Ok j'en tiendrais compte merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme pour recuperer le chemin du dossier courant
    Par HoB dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 11/08/2007, 11h22
  2. Réponses: 3
    Dernier message: 28/08/2006, 16h14
  3. Réponses: 1
    Dernier message: 22/05/2006, 14h44
  4. probleme pour recuperer une valeur
    Par kespy13 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/04/2006, 10h18
  5. [VB] Probleme pour recuperer pieces jointes d'outlook
    Par eown dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 11/04/2006, 09h26

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