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

Servlets/JSP Java Discussion :

probleme jsp facture


Sujet :

Servlets/JSP Java

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 114
    Par défaut probleme jsp facture
    bonjour,je besoin d'aide sur une application j2EE je veux obtenir la référence de la facture j'utilise Hibernate et JSTL voici mon code jsp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div style="float: right;overflow:hidden;width:300px;">
    <table style="border: 1px solid black;width: 100%;">
    <tr>
    <td colspan="2" style="background-color: #CCCCCC;">Facture N°${facture.reference} crée le ${facture.date_creation}</td>
    </tr>
    quand je fais l'exécution la référence est vide,merci de vos aide.

  2. #2
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    bonjour

    c'est pas vraiment la syntaxe
    tu utilises les taglib ou les scriplets ou autres ?
    est-ce que tu peux poster le code de ta servlet stp ?

  3. #3
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    désolé j'ai mal lu : j'avais pas vu que tu avais mis que tu utilisais le JSTL

    il manque comme le code de ta servlet pour qu'on puisse t'aider

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 114
    Par défaut
    salut,voici ma servelt c'est long un peu
    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
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    package servlets.facture;
     
    import java.io.IOException;
    import java.io.OutputStream;
    import java.sql.SQLException;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.Enumeration;
    import java.util.List;
     
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
     
    import org.hibernate.HibernateException;
    import org.hibernate.Query;
    import org.hibernate.Session;
    import org.w3c.dom.Document;
    import org.xhtmlrenderer.pdf.ITextFontResolver;
    import org.xhtmlrenderer.pdf.ITextRenderer;
     
    import com.lowagie.text.pdf.BaseFont;
     
    import domain.Client;
    import domain.CommandeClient;
    import domain.Facture;
    import domain.Livraison;
    import domain.Produit;
    import domain.ProduitCommandeClient;
    import domain.ProduitLivre;
     
    import util.BufferedHttpResponseWrapper;
    import util.HibernateUtil;
     
    /**
     * Servlet implementation class Livraison
     */
    public class FactureController extends HttpServlet {
    	private static final long serialVersionUID = 1L;
     
        /**
         * @see HttpServlet#HttpServlet()
         */
        public FactureController() {
            super();
            // TODO Auto-generated constructor stub
        }
        public Facture facture;
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		String op = request.getParameter("op");
     
    		Session session =  HibernateUtil.currentSession();
    		session.getTransaction().begin();
     
    		if (op.equalsIgnoreCase("edit")) {
    			Integer livraison_id = null;
    			try {
    				if (!request.getParameter("id").isEmpty())
    					livraison_id = Integer.parseInt(request.getParameter("id"));
    			}catch (NumberFormatException e) {
    			}
    			if (livraison_id!=null) {
    				Livraison livraison = (Livraison) session.load(Livraison.class, livraison_id);
    				request.setAttribute("livraison", livraison);
    				gotoPage("/jsp/facture/edit.jsp",request,response);
    			}
    		}
     
    		else if (op.equalsIgnoreCase("liste")) {
    			Integer commande_id = null;
    			try {
    				if (!request.getParameter("cid").isEmpty())
    					commande_id = Integer.parseInt(request.getParameter("cid"));
    			}catch (NumberFormatException e) {
    			}
    			if (commande_id!=null) {
    			CommandeClient commande = (CommandeClient) session.load(CommandeClient.class, commande_id);
    			request.setAttribute("commande", commande);
    			}
    		}
     
    		else if (op.equalsIgnoreCase("consulter")) {
    			Integer livraison_id = null;
    			try {
    				if (!request.getParameter("lid").isEmpty())
    					livraison_id = Integer.parseInt(request.getParameter("lid"));
    			}catch (NumberFormatException e) {
    			}
    			if (livraison_id!=null) {
    				Livraison livraison = (Livraison) session.load(Livraison.class, livraison_id);
    				request.setAttribute("livraison", livraison);
    				gotoPage("/jsp/facture/new.jsp",request,response);
    			}
    		}
     
    		session.getTransaction().commit();
    	}
     
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	@SuppressWarnings("unchecked")
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		String op = request.getParameter("submit");
    		Session session =  HibernateUtil.currentSession();
    		HttpSession sessionhttp = request.getSession(false);
    		session.getTransaction().begin();
     
     
    		if (op.equalsIgnoreCase("facturer")) {
    			Integer livraison_id = null;
     
    			try {
    				if (!request.getParameter("lid").isEmpty())
    					livraison_id = Integer.parseInt(request.getParameter("lid"));
    			}catch (NumberFormatException e) {
    			}
    			if (livraison_id!=null) {
    				Livraison livraison = (Livraison) session.load(Livraison.class, livraison_id);
     
     
    				boolean reference = true;
    				if(request.getParameter("reference") != null && request.getParameter("reference").equalsIgnoreCase("sans")) {
    					reference = false;
    					String val = request.getParameter("reference");
    					val+="";
    				}
     
    				//Créer la facture
    				Calendar calendar = Calendar.getInstance();
    				Date date = calendar.getTime();
    				Integer seq = null;
     
    				Facture facture = new Facture();
    				facture.setDate_creation(date);
    				facture.setDate_mise_jour(date);
    				facture.setEtat("1");
    				facture.setLivraison(livraison);
    				seq = (Integer) session.createSQLQuery("select id from facture_seq;").uniqueResult();
    				if(reference){
    					facture.setReference(seq + "J" + calendar.get(Calendar.YEAR));
    					session.createSQLQuery("UPDATE facture_seq SET id="+ (++seq)+";").executeUpdate();
    				}else{
    					facture.setReference("");
    				}
    				session.save(facture);
     
     
    				// passer l'état de la livraison à facturé (= impayée)
    				String etatFacturee = "3";
    				livraison.setEtat(etatFacturee);
    				CommandeClient commandeClient = livraison.getCommandeClient();
    				commandeClient.setEtat(etatFacturee);
    				session.saveOrUpdate(commandeClient);
    				session.saveOrUpdate(livraison);
     
    				request.setAttribute("livraison", livraison);
    				gotoPage("/jsp/facture/new.jsp",request,response);
    			}
    		}
    		else if(op.equalsIgnoreCase("Pdf")) {
    			Integer id_livraison = null;
    			Facture facture = null;
    			Livraison livraison = null;
    			try {
    				id_livraison = Integer.parseInt(request.getParameter("lid"));
    			} catch (NumberFormatException e) {
     
    			}
    			if (id_livraison != null) {
    				livraison = (Livraison) session.load(Livraison.class, id_livraison);
    				request.setAttribute("livraison", livraison);
    			}
    			Query q = session.createQuery("FROM Facture f");
    			List<Facture> factures = q.list();
     
    			for (Facture f : factures){
    				if (f.getLivraison().equals(livraison)){
    					System.out.println("facture trouvée!"+f.getReference());
    					facture = f;
    					break;
    				}
    			}
    			if (facture == null){
    				System.out.println("facture non trouvée!");
    			}
    			String x=facture.getReference();
    			System.out.println(x);
    			response.setContentType("application/pdf");
     
    			response.setHeader("Content-Disposition", "attachment; filename=\""+facture.getReference()+".pdf" + "\"");
    			StringBuffer buf = new StringBuffer();
    			try {
    				BufferedHttpResponseWrapper wrapper = new BufferedHttpResponseWrapper(response);
    				ServletContext context = request.getSession().getServletContext();
     
    				String url = response.encodeRedirectURL("/jsp/facture/facture.jsp");
    				RequestDispatcher dispatcher = context.getRequestDispatcher(url);
    				dispatcher.include(request, wrapper);
    				String report = new String(wrapper.getOutput());
    				buf.append("<html>");
    				String css = getServletContext().getRealPath("/css/style.css");
    				buf.append("<head>");
    				buf.append("<style language='text/css'>");
    				buf.append("body { font-family: 'Arial Unicode MS'; font-size: 9pt; -fs-pdf-font-embed: embed; }");
    				buf.append("#liste_produits{border-collapse: collapse;border:1px solid black;width:100%;}");
    				buf.append("#liste_produits th{background-color:#CCCCCC;font-weight: bold;text-align: center;border: 1px solid black;}");
    				buf.append("#liste_produits td{text-align: center;border: 1px solid black;}");
    				buf.append(".r2{background-color:#f1f1f1;}");
    				buf.append(".r1{background-color:#ffffff;}");
    				buf.append("</style></head>");
    				buf.append("<body>");
    				buf.append(report);
    				buf.append("</body>");
    				buf.append("</html>");
     
    				// parse the markup into an xml Document
    				DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
    				Document doc = builder.parse(new java.io.ByteArrayInputStream(buf.toString().trim().getBytes("utf-8")));
    				ITextRenderer renderer = new ITextRenderer();
    				ITextFontResolver resolver = renderer.getFontResolver();
    				resolver.addFont("C:\\WINDOWS\\FONTS\\ARIAL.TTF",BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
    				renderer.setDocument(doc, null);
    				renderer.layout();
    				OutputStream os = response.getOutputStream();
    				renderer.createPDF(os);
    				os.close();
     
    			} catch (Exception ex) {
    				ex.printStackTrace();
    			}
    		}
    		session.getTransaction().commit();
    	}
     
    	private void gotoPage(String address, HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
    		RequestDispatcher dispatcher = getServletContext()
    				.getRequestDispatcher(address);
    		dispatcher.forward(request, response);
    	}
     
    	public Facture getFacture() {
    		return facture;
    	}
     
    	public void setFacture(Facture facture) {
    		this.facture = facture;
    	}
     
    }
    merci de vos aide.

  5. #5
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    Alors quelques problèmes à résoudre avant d'aller plus loin
    1) à la ligne 54 tu déclares un objet facture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        public Facture facture;
    cet objet est partagé et peut être manipulé par plusieurs requêtes. En plus à priori il est utilisé nulle part => à supprimer
    tu peux aussi supprimer le getter et le setter associé

    2) partout tu mets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.getParameter("cid").isEmpty()
    or quand on regarde la javadoc http://download.oracle.com/javaee/5/...etRequest.html
    la méthode getParameter peut renvoyer null

    Returns the value of a request parameter as a String, or null if the parameter does not exist.
    tu peux te retrouver avec un NulllPointerException => tu devrais plutôt faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    String cid= request.getParameter("cid");
    if (cid != null && !"".equals(cid)){
    //traitement
    }
    3) et enfin est-ce que tu peux nous dire dans quelle partie du code tu passes ?
    car dans ce que j'ai pu voir de ta servlet je n'ai pas vu de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.setAttribute("facture", facture);

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 114
    Par défaut
    salut,merci Isma de vos aide dans ce code je peux obtenir la référence du produit dans le console mais pas sur le pdf je pense que la variable facture n'est pas reconnu
    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
    else if(op.equalsIgnoreCase("Pdf")) {
    			Integer id_livraison = null;
    			Facture facture = null;
    			Livraison livraison = null;
    			try {
    				id_livraison = Integer.parseInt(request.getParameter("lid"));
    			} catch (NumberFormatException e) {
     
    			}
    			if (id_livraison != null) {
    				livraison = (Livraison) session.load(Livraison.class, id_livraison);
    				request.setAttribute("livraison", livraison);
    			}
    			Query q = session.createQuery("FROM Facture f");
    			List<Facture> factures = q.list();
     
    			for (Facture f : factures){
    				if (f.getLivraison().equals(livraison)){
    					System.out.println("facture trouvée!"+f.getReference());
    					facture = f;
    					break;
    				}
    			}
    			if (facture == null){
    				System.out.println("facture non trouvée!");
    			}
    			String x=facture.getReference();
    			System.out.println(x);
    			response.setContentType("application/pdf");
    merci.

  7. #7
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    si tu ne mets pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.setAttribute("facture", facture);
    dans ton objet request, tu ne peux pas l'appeler directement dans ta JSP

    ensuite est-ce que tu es sûr que tu passes dans ton test

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (f.getLivraison().equals(livraison)){
    					System.out.println("facture trouvée!"+f.getReference());
    					facture = f;
    					break;
    				}
    je pense que le problème vient de là.
    je ne suis pas sûr que dans ta requête Hibernate tu récupères l'objet livraison associé
    Est-ce que tu as une trace d'erreur quelque part ?
    en parlant de traces d'erreur, tu devrais rajouter une trace ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    try {
    				id_livraison = Integer.parseInt(request.getParameter("lid"));
    			} catch (NumberFormatException e) {
     //ici il faut rajouter une trace et  jeter une exception
    ça ne sert à rien de continuer ton traitement si tu n'as pas un id de livraison 
    
    			}

  8. #8
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 114
    Par défaut
    salut,merci Isma de vos aide dans ce code je peux obtenir la référence du produit dans le console mais pas sur le pdf je pense que la variable facture n'est pas reconnu
    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
    else if(op.equalsIgnoreCase("Pdf")) {
    			Integer id_livraison = null;
    			Facture facture = null;
    			Livraison livraison = null;
    			try {
    				id_livraison = Integer.parseInt(request.getParameter("lid"));
    			} catch (NumberFormatException e) {
     
    			}
    			if (id_livraison != null) {
    				livraison = (Livraison) session.load(Livraison.class, id_livraison);
    				request.setAttribute("livraison", livraison);
    			}
    			Query q = session.createQuery("FROM Facture f");
    			List<Facture> factures = q.list();
     
    			for (Facture f : factures){
    				if (f.getLivraison().equals(livraison)){
    					System.out.println("facture trouvée!"+f.getReference());
    					facture = f;
    					break;
    				}
    			}
    			if (facture == null){
    				System.out.println("facture non trouvée!");
    			}
    			String x=facture.getReference();
    			System.out.println(x);
    			response.setContentType("application/pdf");
    merci.je passe par l'étape consulter,facturer et pdf mais je pense que cette dernière j'ai aucun problème j'ai une autre page jsp new.
    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
    <%@ include file="/WEB-INF/inc/top_header.jsp"%>
    <body>
    <div id="page">
    <div id="content"><%@ include file="/WEB-INF/inc/index.html"%>
    <div id="main">
     
    <form action="facture" method="post">
    <h1>Facture de la livraison #${livraison.reference} </h1>
    <input type="hidden" name="lid" value="${livraison.id}" />
    <table id="liste_produits" class="tablesorter" cellspacing="1">
    	<thead>
    		<tr>
    			<th>Référence</th>
    			<th>Prix de vente</th>
    			<th>Quantité livrée</th>
    			<th>Quantité retournée</th>
    		</tr>
    	</thead>
    	<c:forEach var="produit_livre" items="${livraison.produits_livres}"
    		varStatus="loopStatus">
    		<tr>
    			<td><input type="hidden" name="produitlivre_${loopStatus.index}"
    				value="${produit_livre.id}" /> ${produit_livre.produit.reference}</td>
    			<td style="background-color: #CCFFFF;" align="center">${produit_livre.produit.prix_vente}</td>
    			<td style="background-color: #CCFFFF;" align="center">${produit_livre.quantite_livree}</td>
    			<td style="background-color: #CCFFFF;" align="center">${produit_livre.quantite_retournee}</td>
    		</tr>
    	</c:forEach>
    	<tr>
    		<td colspan="4">
    		<p align="right">
     
    <input type="submit" name="submit" value="PDF"></input>
     [<a href="livraison?op=edit&id=${livraison.id}">Retour</a>]
    		</p>
    		</td>
     
    	</tr>
    </table>
     
    </form>
     
    </div>
    </div>
    </div>
    </body>
    <%@ include file="/WEB-INF/inc/footer.jsp"%>

  9. #9
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 114
    Par défaut
    j'ai passer en mode débogage et j'ai obteni l'id de la livraison et dans le console j'ai obteni la référence du produit. je ne sais pas où est le problème exactement.

  10. #10
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    Est-ce que tu as une erreur à l'affichage ?
    est-ce que tu peux poster ta classe facture stp ?
    et enfin je ne vois pas dans ton code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.setAttribute("facture", facture);

  11. #11
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 114
    Par défaut
    Non j'ai aucun erreur et c'est ça le problème;
    voici la class Facture
    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
    package domain;
     
    import java.util.Date;
    import java.util.HashSet;
    import java.util.Set;
    import java.util.TreeSet;
     
    public class Facture {
    	public Integer id;
    	public String reference;
    	public Date date_creation;
    	public Date date_mise_jour;
    	public Livraison livraison;
    	public String etat;
    	public Set<ProduitFacture> produits_factures = new HashSet<ProduitFacture>();
    	private Set<Reglement> reglement= new TreeSet<Reglement>(); 
     
    	public Integer getId() {
    		return id;
    	}
    	public void setId(Integer id) {
    		this.id = id;
    	}
    	public String getReference() {
    		return reference;
    	}
    	public void setReference(String reference) {
    		this.reference = reference;
    	}
    	public Date getDate_creation() {
    		return date_creation;
    	}
    	public void setDate_creation(Date dateCreation) {
    		date_creation = dateCreation;
    	}
    	public Date getDate_mise_jour() {
    		return date_mise_jour;
    	}
    	public void setDate_mise_jour(Date dateMiseJour) {
    		date_mise_jour = dateMiseJour;
    	}
    	public Livraison getLivraison() {
    		return livraison;
    	}
    	public void setLivraison(Livraison livraison) {
    		this.livraison = livraison;
    	}
    	public String getEtat() {
    		return etat;
    	}
    	public void setEtat(String etat) {
    		this.etat = etat;
    	}
    	public Set<ProduitFacture> getProduits_factures() {
    		return produits_factures;
    	}
    	public void setProduits_factures(Set<ProduitFacture> produitsFactures) {
    		produits_factures = produitsFactures;
    	}
    	public void addProduitFacture(ProduitFacture p) {
    		produits_factures.add(p);
    		p.setFacture(this);
    	}
    	public Set<Reglement> getReglement() {
    		return reglement;
    	}
    	public void setReglement(Set<Reglement> reglement) {
    		this.reglement = reglement;
    	}
    }
    je ne sais pas où je peut mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.setAttribute("facture", facture);
    je l'ai mis dans le code de consulter mais ca marche pas.
    merci

  12. #12
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    j'avoues que je ne comprend pas ta cinématique
    à quoi sert ta JSP ? Expliques nous stp ce que tu veux faire exactement
    est-ce que elle sert à afficher un fichier PDF ?
    si ce n'est pas la cas je ne suis pas sûr que tu sois censé passé dans la condition if
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	else if(op.equalsIgnoreCase("Pdf")) {}
    tu n'as pas répondu à ma question "dans quelle partie de ta servlet tu es censé passé" quand tu affiches ta JSP ?
    si c'est vraiment dans le if indiqué ci-dessus tu rajoutes ton request.setAttribute à la fin de ce if juste avant le renvoi de ton PDF

  13. #13
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 114
    Par défaut
    salut;merci Isma pour vos remarques enfin j'ai obtenu la référence de la facture j'ai ajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.setAttribute("facture", facture);
    avant d'ouvrir la page jsp facture (le pdf) voici le code:
    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
    else if(op.equalsIgnoreCase("Pdf")) {
    			Integer id_livraison = null;
    			Facture facture = null;
    			Livraison livraison = null;
    			try {
    				id_livraison = Integer.parseInt(request.getParameter("lid"));
    			} catch (NumberFormatException e) {
     
    			}
    			if (id_livraison != null) {
    				livraison = (Livraison) session.load(Livraison.class, id_livraison);
    				request.setAttribute("livraison", livraison);
    			}
    			Query q = session.createQuery("FROM Facture f");
    			List<Facture> factures = q.list();
     
    			for (Facture f : factures){
    				if (f.getLivraison().equals(livraison)){
    					System.out.println("facture trouvée!"+f.getReference());
    					facture = f;
    					break;
    				}
    			}
    			if (facture == null){
    				System.out.println("facture non trouvée!");
    			}
    			String x=facture.getReference();
    			System.out.println(x);
    			livraison.setTotal_prix();
    			response.setContentType("application/pdf");
     
    			response.setHeader("Content-Disposition", "attachment; filename=\""+facture.getReference()+".pdf" + "\"");
    			StringBuffer buf = new StringBuffer();
     
    			try {
    				BufferedHttpResponseWrapper wrapper = new BufferedHttpResponseWrapper(response);
    				ServletContext context = request.getSession().getServletContext();
    				request.setAttribute("facture", facture);
    				String url = response.encodeRedirectURL("/jsp/facture/facture.jsp");
    				RequestDispatcher dispatcher = context.getRequestDispatcher(url);
    				dispatcher.include(request, wrapper);
    				String report = new String(wrapper.getOutput());
    				buf.append("<html>");
    				String css = getServletContext().getRealPath("/css/style.css");
    				buf.append("<head>");
    				buf.append("<style language='text/css'>");
    				buf.append("body { font-family: 'Arial Unicode MS'; font-size: 9pt; -fs-pdf-font-embed: embed; }");
    				buf.append("#liste_produits{border-collapse: collapse;border:1px solid black;width:100%;}");
    				buf.append("#liste_produits th{background-color:#CCCCCC;font-weight: bold;text-align: center;border: 1px solid black;}");
    				buf.append("#liste_produits td{text-align: center;border: 1px solid black;}");
    				buf.append(".r2{background-color:#f1f1f1;}");
    				buf.append(".r1{background-color:#ffffff;}");
    				buf.append("</style></head>");
    				buf.append("<body>");
    				buf.append(report);
    				buf.append("</body>");
    				buf.append("</html>");
     
    				// parse the markup into an xml Document
    				DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
    				Document doc = builder.parse(new java.io.ByteArrayInputStream(buf.toString().trim().getBytes("utf-8")));
    				ITextRenderer renderer = new ITextRenderer();
    				ITextFontResolver resolver = renderer.getFontResolver();
    				resolver.addFont("C:\\WINDOWS\\FONTS\\ARIAL.TTF",BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
    				renderer.setDocument(doc, null);
    				renderer.layout();
    				OutputStream os = response.getOutputStream();
    				renderer.createPDF(os);
    				os.close();
     
    			} catch (Exception ex) {
    				ex.printStackTrace();
    			}
    		}
    		session.getTransaction().commit();
    mais j'ai un autre problème c'est que je veux afficher la référence de la facture dans cette page jsp voici son code:
    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
    <table class="tablesorter" cellspacing="1">
    	<thead>
    		<tr>
    			<th>Réf livraison</th>
    			<th>Réf Commande</th>
    			<th>Objet de la commande</th>
    			<th>Patient</th>
    			<th>Date de Livraison</th>
    			<th colspan="2" align="center">Modification/Suppression</th>
    		</tr>
    	</thead>
     
    	<c:forEach var="livraison" items="${livraisons}" varStatus="loopStatus">
     
    		<tr>
    			<td><p valign="middle">${livraison.reference}</p></td>			
    			<td><a href="editCommande?op=edit&id=${livraison.commandeClient.id}"><p valign="middle">${livraison.commandeClient.reference}</p></td>
    			<td><p valign="middle">${livraison.commandeClient.objet}</p></td>
    			<td><p valign="middle">${livraison.commandeClient.client.nomPrenom}</p></td>
    			<td><p valign="middle">${livraison.date_livraison}</p></td>		
    			<td><p valign="middle">
    				<c:if test="${etat eq 1}">
    					<a href="livraison?op=delete&id=${livraison.id}" onclick="if (window.confirm('Voulez-vous vraiment supprimer cette livraison?'))
    					{location.href='index.jsp';return true;} else {return false;}">[Supprimer]</a>	
    				</c:if>
    				<a href="livraison?op=edit&id=${livraison.id}">[Modifier]</a>
    				</p>
    			</td>
    		</tr>
     
    	</c:forEach>
    </table>
    merci de vos aide.

Discussions similaires

  1. Probleme JSP / ORACLE
    Par cucualex dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 01/03/2010, 17h46
  2. Probleme jsps avec tag struts
    Par mafanta dans le forum Struts 1
    Réponses: 1
    Dernier message: 10/02/2010, 20h09
  3. Probleme JSP include
    Par foobar42 dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 19/12/2007, 14h54
  4. Probleme jsp avec Weblogic 9.2.0
    Par hicham95 dans le forum Weblogic
    Réponses: 2
    Dernier message: 15/03/2007, 21h19
  5. Probleme jsp passage de paramettres
    Par rafounette dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 17/11/2006, 16h43

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