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 :

problème struts jsp


Sujet :

Struts 1 Java

  1. #1
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 20
    Par défaut problème struts jsp
    salut,
    je travail sur une application avec j2EE/struts , j'utilise MyEclipse et oracle, je veux afficher le resultat d'une requete select sur une page jsp , mon problème c'est quand j'execute ça me donne la page vide
    pour la connection de oracle et myeclipse marche tres bien .

    voila la classe qui contien la methode
    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
    package metier;
    import java.sql.*;
    import java.util.*;
    import metier.Post;
    public class Post {
        private String id;
    	private String name;
    	private String AdresseP;
    	private String TelP;
    	private String FaxP;
     
    public Post() {
     
    	}
     
    	public Post(ResultSet rs) throws SQLException {
    		init(rs);
    	}
     
    	public void init(ResultSet rs) throws SQLException {
    		this.id=rs.getString("CODEP");
    		this.name=rs.getString("INTITULEP");
    		this.AdresseP=rs.getString("ADRESSEP");
    		this.TelP=rs.getString("TELP");
    		this.FaxP=rs.getString("FAXP");
    	}
     
    	public String getId() {
    		return id;
    	}
     
    	public void setId(String CODEP) {
    		this.id = CODEP;
    	}
     
    	public String getName() {
    		return name;
    	}
     
    	public void setName(String INTITULEP) {
    		this.name = INTITULEP;
    	}
    	public String getAdresse() {
    		return AdresseP;
    	}
     
    	public void setAdresse(String ADRESSEP) {
    		this.AdresseP = ADRESSEP;
    	}
     
    	public void setTelP(String TELP) {
    		this.TelP = TELP;
    	}
    	public String getTelP() {
    		return TelP;
    	}
    	public void setFaxP(String FAXP) {
    		this.FaxP = FAXP;
    	}
    	public String getFaxP() {
    		return FaxP;
    	}
        public static Post[] getPost() {
        	Vector posts=new Vector();
            Statement sStat=null;
            String sQuery="select * from POSTE_COMPTABLE";
            Connection cCon=null;
     
                try{
                    Class cDriverOracle=Class.forName("oracle.jdbc.driver.OracleDriver");
                    Driver dDriverOracle=(java.sql.Driver)cDriverOracle.newInstance();
                    DriverManager.registerDriver(dDriverOracle);
                     cCon=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:azerty","administrateur","admin");
                }
                catch(Exception e){
                    System.out.println("--Pbm en chargeant le driver JDBC oracle--");
                    e.printStackTrace();
                }
            try{
               sStat=cCon.createStatement();
    			ResultSet rs=sStat.executeQuery(sQuery);
               while( rs.next()){
            	   Post post=new Post(rs);
    				posts.add(post);}
                sStat.close();
            }
            catch(Exception sqlE){
                System.out.println("La Requête n'a pas  abouti");
                sqlE.printStackTrace();
            }
     
     
    		Post [] arrayPosts=new Post[posts.size()];
    		return (Post[])posts.toArray(arrayPosts);
    }
     
     
    }
    l'action :
    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
    /*
     * Generated by MyEclipse Struts
     * Template path: templates/java/JavaClass.vtl
     */
    package com.yourcompany.struts.action;
     
    import java.sql.SQLException;
     
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import metier.*;
     
    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 com.yourcompany.struts.form.ListPostForm;
     
    /** 
     * MyEclipse Struts
     * Creation date: 06-02-2009
     * 
     * XDoclet definition:
     * @struts.action path="/listPost" name="listPostForm" scope="request" validate="true"
     * @struts.action-forward name="success" path="/PostListing.jsp"
     */
    public class ListPostAction extends Action {
    	/*
    	 * Generated Methods
    	 */
     
    	/** 
             * Method execute
             * @param mapping
             * @param form
             * @param request
             * @param response
             * @return ActionForward
             * @throws SQLException 
             */
    	public ActionForward execute(
    			ActionMapping mapping,
    			ActionForm form,
    			HttpServletRequest request,
    			HttpServletResponse response)  {
     
    			Post [] t=Post.getPost();
    			request.setAttribute("depts",t);
    			return mapping.findForward("success");
    		}
    }
    la page 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
    <%@ page language="java" import="metier.*" pageEncoding="ISO-8859-1"%>
     
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
     
        <title>My JSP 'PostListing.jsp' starting page</title>
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
     
      </head>
     
      <body>
        <h3><marquee>
    Liste des postes comptables
     </marquee>   </h3>
           <table border="1" cellpadding="1" >
             <tr>
                 <th> Code poste </th>
                 <th> Nom poste </th>
             </tr>
    		<%
    		Post [] depts=(Post []) request.getAttribute("depts");
    		for(int i=0; i<depts.length;i++)
    		{
    		%>
    		<tr>
    			<td>
    				<%=depts[i].getId()%>
    			</td>
    			<td>
    				<%=depts[i].getName()%>
    			</td>
    			</tr>
    		<%
    		}
    		%>
     
    </table>
      </body>
    </html>
    merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Par défaut
    Pas facile à dire au premier coup d'oeil.

    Et si tu plaçais un point d'arrêt sur la ligne

    request.setAttribute("depts",t);
    pour voir si ta requête ramène quelque chose ?

  3. #3
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 20
    Par défaut
    j'ai essayé de debugger mais j'ai pas bien compris ce que ça a donné (classLoader , URLclassLoader )

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 27
    Par défaut
    Pour debugger ce genre de chose je regarde souvent la requête générée avec un utilitaire de base de données, pour voir si elle me renvoie des résultats. Si tu n'as pas d'erreurs qui s'affiche lors de l'exécution ou compilation, ça peut être tout simplement que ton SELECT ne renvoie aucune valeur.

    En espérant que ça puisse t'aider a avancer

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Par défaut
    Citation Envoyé par saritta27 Voir le message
    j'ai essayé de debugger mais j'ai pas bien compris ce que ça a donné (classLoader , URLclassLoader )
    Tu poses un point d'arrêt sur cette ligne et tu fait "inspect" en surlignant la variable t.

  6. #6
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 20
    Par défaut
    le problème c'est quand j'exécute cette classe toute seule, la requête marche très bien
    voila la classe
    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
    package metier;
     
    import java.sql.*;
     
    public class JdbcTest {
    	public JdbcTest[] getPost(){
    	try{
    		DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
    		Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@sofie:1521:azerty","administrateur","admin");
    		Statement  stm=conn.createStatement();
    		ResultSet rset=stm.executeQuery("select * from POSTE_COMPTABLE");
    		while (rset.next()){
    			System.out.println( rset.getString(1)+ "" +rset.getString(2) );
    			}
            }catch(Exception e){
    	        System.out.println(e);
    	        e.printStackTrace();
    	    }
    	return null;
    	}
    		public static void main(String args[]) {
    			JdbcTest A=new JdbcTest();
    			A.getPost();
    }
    }
    mais quand je l'ai intégré dans mon projet ça n'as pas marché

  7. #7
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 20
    Par défaut
    j'ai posé un point d'arrêt sur cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.setAttribute("depts",t);
    et j'ai fait inspecte , ça m'a donné "t cannot be resolved"

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Par défaut
    "t cannot be resolved"
    Ca ne me semble pas possible. Dans tous les cas, le but est de savoir si l'objet que tu enregistre en request contient bien quelque chose.

  9. #9
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 20
    Par défaut
    j'arrive pas a détecter l'erreur, en tout cas je te remercie beaucoup pour ton aide

  10. #10
    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
    Tu as vraiment une page blanche ou bien l'entête du tableau html s'affiche ?

    Si tu as une page blanche, c'est qu'il y a un problème de forward.
    Il y a peut-être un problème à la validation du formulaire.
    As-tu mis l'attribut input dans le mapping de l'Action ListPostAction ?

    Peux-tu montrer le mapping de l'Action ListPostAction défini dans struts-config.xml ?

    EDIT : J'en profite pour te faire remarquer que la classe Post devrait être un Java Bean et donc respecter certaines normes, comme par exemple les noms des propriétés doivent commencer par une minuscule. Il faudrait donc renommer AdresseP, TelP, FaxP en adresseP, telP et faxP.
    Elle ne devrait contenir que des constructeurs et des getters et setters sur les propriétés.
    Elle devrait aussi implémenter l'interface Serializable.
    Et elle ne devrait pas contenir de méthode avec accès aux données.

    De plus, plutôt que d'utiliser un Vector et un tableau d'objets, on utilise généralement une List d'objets.

    Et enfin, comme tu utilises Struts, pourquoi ne pas utiliser les tags Struts pour afficher le tableau dans la jsp ?

  11. #11
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 20
    Par défaut
    tout d abord je te remercie pour ta réponse
    alors j'ai pas une page blanche, l'entête du tableau html s'affiche correctement donc ce n'est pas un problème de forwrd
    pour l input j'ai pas besoin parce que je l'exécute directement c.a.d:
    et voila le le mapping de l'Action ListPost:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <action
          attribute="listPostForm"
          name="listPostForm"
          path="/listPost"
          scope="request"
          type="com.yourcompany.struts.action.ListPostAction">
          <forward name="success" path="/PostListing.jsp" />
        </action>
    merci pour les remarques , est ce que je vais mettre le code d'accès à la base de donnée dans la page jsp ?
    et comment je peux utiliser une liste d'objet au lieu de vector et tableau?
    pour les tag je vais essayer de les utiliser.

  12. #12
    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
    Citation Envoyé par saritta27 Voir le message
    est ce que je vais mettre le code d'accès à la base de donnée dans la page jsp ?
    Non surtout pas.
    Il faut créer une autre classe dans laquelle tu mets la méthode qui te permet de récupérer la List d'objets :
    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
        public static List getPosts() {
        	List posts=new ArrayList();
            Statement sStat=null;
            String sQuery="select * from POSTE_COMPTABLE";
            Connection cCon=null;
                try{
                    Class cDriverOracle=Class.forName("oracle.jdbc.driver.OracleDriver");
                    Driver dDriverOracle=(java.sql.Driver)cDriverOracle.newInstance();
                    DriverManager.registerDriver(dDriverOracle);
                     cCon=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:azerty","administrateur","admin");
                }
                catch(Exception e){
                    System.out.println("--Pbm en chargeant le driver JDBC oracle--");
                    e.printStackTrace();
                }
     
            try{
               sStat=cCon.createStatement();
    	ResultSet rs=sStat.executeQuery(sQuery);
               while( rs.next()){
                      Post post=new Post();
    	     post.setId(rs.getString("CODEP"));
    	     post.setName(rs.getString("INTITULEP"));
    	     post.setAdresseP(rs.getString("ADRESSEP"));
    	     post.setTelP(rs.getString("TELP"));
    	     post.setFaxP(rs.getString("FAXP"));
     
    	     posts.add(post);
               }
                sStat.close();
            }
            catch(Exception sqlE){
                System.out.println("La Requête n'a pas  abouti");
                sqlE.printStackTrace();
            }
           return posts;
    }
    Il faudrait d'ailleurs isoler aussi le code qui établit la connexion à la base de données dans une autre méthode car tu auras sans doute besoin de récupérer cette connexion dans d'autres méthodes.

    Ensuite, tu fais appel à cette méthode dans ton Action et tu mets la List dans le scope request :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    List posts=Post.getPosts();
    request.setAttribute("posts",posts);
    Et enfin, pour afficher la liste d'objets Post dans la jsp, tu peux utiliser les tags logic:iterate et bean:write :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <logic:iterate name="posts" id="post">
    <tr>
       <td><bean:write name="post" property="id"/></td>
       <td><bean:write name="post" property="name"/></td>
    </tr>
    </logic:iterate>
    sans oublier d'ajouter au début de la jsp les directives taglib qui pointent sur les tld struts-logic.tld et struts-bean.tld.

  13. #13
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 20
    Par défaut
    merci beaucoup , ce code a marché avec netbeans mais avec myeclipse non
    je vais continuer avec netbeans , maintenat j'ai fais la même chose mais j'ai changé de requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from Materiel where CODEP=?
    et j'ai crée une autre classe qui contient la méthode getMateriels()
    cette fois j'ai utilisé PreparedStatement
    la methode :
    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
    public static List getMateriels() {
        	List mats=new ArrayList();
            String sQuery2="select * from MATERIEL where CODEP=?";
            Connection cCon=null;
                try{
                    Class cDriverOracle=Class.forName("oracle.jdbc.driver.OracleDriver");
                    Driver dDriverOracle=(java.sql.Driver)cDriverOracle.newInstance();
                    DriverManager.registerDriver(dDriverOracle);
                     cCon=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:azerty","administrateur","admin");
                }
                catch(Exception e){
                    System.out.println("--Pbm en chargeant le driver JDBC oracle--");
                    e.printStackTrace();
                }
     
            try{
     
              PreparedStatement sStat=cCon.prepareStatement(sQuery2);
    	    ResultSet rs=sStat.executeQuery();
               while( rs.next()){
                      Materiel mat=new Materiel();
    	     mat.setMatId(rs.getString("NUM_SERIE"));
    	     mat.setFId(rs.getString("CODEF"));
    	     mat.setPostId(rs.getString("CODEP"));
    	     mat.setFCode(rs.getString("FOU_CODEF"));
    	     mat.setTypeId(rs.getString("CODETYPE"));
             mat.setNInv(rs.getString("NINVENTAIRE"));
             mat.setMName(rs.getString("DESIGNATION"));
             mat.setETAT(rs.getString("ETAT"));
             mat.setDStk(rs.getString("DATE_STOCK"));
             mat.setDLiv(rs.getString("DATE_LIVRAISON"));
             mat.setDRmpl(rs.getString("DATE_REMPL"));
    	     mats.add(mat);
               }
                sStat.close();
            }
            catch(Exception sqlE){
                System.out.println("La Requête n'a pas  abouti");
                sqlE.printStackTrace();
            }
           return mats;
    }
    et la classe Materiel
    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
    /*
     package metier;
     
    import java.sql.ResultSet;
    import java.sql.SQLException;
     
     
     
    /**
     *
     * @author Safisa
     */
    public class Materiel  {
        private String NUM_SERIE;
        private String CODEF;
        private String CODEP;
        private String FOU_CODEF;
        private String CODETYPE;
        private String NINVENTAIRE;
    	private String DESIGNATION;
    	private String ETAT;
    	private String DATE_STOCK;
        private String DATE_LIVRAISON;
    	private String DATE_REMPL;
     
     
    	public Materiel() {
    	}
     
    	public Materiel(ResultSet rs) throws SQLException {
    		init(rs);
    	}
     
    	public void init(ResultSet rs) throws SQLException {
    		this.NUM_SERIE=rs.getString("NUM_SERIE");
    		this.CODEF=rs.getString("CODEF");
    		this.CODEP=rs.getString("CODEP");
    		this.FOU_CODEF=rs.getString("FOU_CODEF");
    		this.CODETYPE=rs.getString("CODETYPE");
    		this.NINVENTAIRE=rs.getString("NINVENTAIRE");
            this.DESIGNATION=rs.getString("DESIGNATION");
    		this.ETAT=rs.getString("ETAT");
    		this.DATE_STOCK=rs.getString("DATE_STOCK");
    		this.DATE_LIVRAISON=rs.getString("DATE_LIVRAISON");
    		this.DATE_REMPL=rs.getString("DATE_REMPL");
    	}
     
     
        public String getPostId() {
    		return CODEP;
    	}
     
    	public void setPostId(String CODEP) {
    		this.CODEP= CODEP;
    	}
     
    	public String getMName() {
    		return DESIGNATION;
    	}
     
    	public void setMName(String DESIGNATION) {
    		this.DESIGNATION = DESIGNATION;
    	}
     
    	public String getMatId() {
    		return NUM_SERIE;
    	}
     
    	public void setMatId(String NUM_SERIE) {
    		this.NUM_SERIE = NUM_SERIE;
    	}
    	public String getFId() {
    		return CODEF;
    	}
     
    	public void setFId(String CODEF) {
    		this.CODEF = CODEF;
    	}
     
    	public String getFCode() {
    		return FOU_CODEF;
    	}
     
    	public void setFCode(String FOU_CODEF) {
    		this.FOU_CODEF = FOU_CODEF;
    	}
    	public String getTypeId() {
    		return CODETYPE;
    	}
     
    	public void setTypeId(String CODETYPE) {
    		this.CODETYPE = CODETYPE;
    	}
    	public String getNInv() {
    		return NINVENTAIRE;
    	}
     
    	public void setNInv(String NINVENTAIRE) {
    		this.NINVENTAIRE = NINVENTAIRE;
    	}
    	public String getETAT() {
    		return ETAT;
    	}
     
    	public void setETAT(String ETAT) {
    		this.ETAT = ETAT;
    	}
     
    	public String getDStk() {
    		return DATE_STOCK;
    	}
     
    	public void setDStk(String DATE_STOCK) {
    		this.DATE_STOCK = DATE_STOCK;
    	}
    	public String getDLiv() {
    		return DATE_LIVRAISON;
    	}
     
    	public void setDLiv(String DATE_LIVRAISON) {
    		this.DATE_LIVRAISON = DATE_LIVRAISON;
    	}
    	public String getDRmpl() {
    		return DATE_REMPL;
    	}
     
    	public void setDRmpl(String DATE_REMPL) {
    		this.DATE_REMPL = DATE_REMPL;
    	}
     
     
    }
    puis dans l'action ShowPost dont l'input est vers la page jsp précédente (PostListing.jsp)
    ça veut dire que dans chaque post je dois afficher le matériel qui correspond au CODEP. dans une page MaterielListing.jsp ,
    et dans postListing.jsp j'ai mis un lien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="/GestionStock/showPost.do?CODEP=<%=depts[i].getId()%>"> Show</a>
    ShowPostAction.java:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     ShowPostForm showPostForm = (ShowPostForm) form;
    		Post dept=new Post();
    		dept.setId(showPostForm.getPostid());
    		List mats=Methode1.getMateriels();
         request.setAttribute("mats",mats);
     
    		return mapping.findForward("success");

    quand j'exécute ça me donne :ORA-01006:la variable de lien n'existe pas
    si vous pouvez me monter où elle est l'erreur.
    merci une 2ème fois

  14. #14
    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
    Avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="/GestionStock/showPost.do?CODEP=<%=depts[i].getId()%>"> Show</a>
    pour récupérer l'id passé en paramètre de l'Action ShowPostAction, il faut utiliser request.getParameter.
    Ensuite, il faut passer codep en paramètre de la méthode getMateriels.

    Dans l'Action ShowPostAction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String codep=request.getParameter("CODEP") ;
    List mats=Methode1.getMateriels(codep);
    Dans la classe Methode1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static List getMateriels(String codep) { ... }
    et ensuite, pour passer la valeur de la variable codep en paramètre du prepareStatement, il faut coder ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    PreparedStatement sStat=cCon.prepareStatement(sQuery2);
    sStat.setString(1, codep);
    ResultSet rs=sStat.executeQuery();

  15. #15
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 20
    Par défaut
    excusez moi , quand j'ai ré exécuté l'application , ça marche plus ça me donne
    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
    HTTP Status 500 - 
     
    --------------------------------------------------------------------------------
     
    type Exception report
     
    message
     
    descriptionThe server encountered an internal error () that prevented it from fulfilling this request.
     
    exception 
     
    org.apache.jasper.JasperException: java.lang.NullPointerException
    root cause 
     
    java.lang.NullPointerException
    note The full stack traces of the exception and its root causes are available in the GlassFish/v3 logs.
     
     
    --------------------------------------------------------------------------------
     
    GlassFish/v3
    je sais pas pourquoi

    mais quand j'ai réutilise l'ancien code ça marche , le problème la quand j'appuis sur show ça me donne aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.NullPointerException
    remarque :pour showPost et getMateriels j'ai suivi les étapes que vous m'avez donné .

Discussions similaires

  1. problème struts ,JSP
    Par saritta27 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 14/05/2012, 08h57
  2. problème struts jsp
    Par seb111983 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 27/06/2011, 19h26
  3. problème struts jsp
    Par seb111983 dans le forum Struts 1
    Réponses: 1
    Dernier message: 27/06/2011, 12h35
  4. problème struts JSP
    Par yaya0057 dans le forum Struts 1
    Réponses: 2
    Dernier message: 21/05/2007, 18h19
  5. [struts][JSP][select] problème avec le select
    Par redge_touch dans le forum Struts 1
    Réponses: 4
    Dernier message: 14/01/2004, 10h05

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