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 :

Projet de gestion de factures d'abonnement telephonique


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2008
    Messages : 101
    Par défaut Projet de gestion de factures d'abonnement telephonique
    Bonjour a tous
    je travaille sur une application web qui va servir à gerer les factures d'un abonnement gsm ou fixe.
    J'utilise le modèle MVC pour le developpement. La partie modèle à été traiter avec Hibernate et elle contient s
    • Abonnement
    • Abonnement GSM
    • Abonnement FIXE
    • Client
    • Facture
    • Operateur
    ix classe:
    La classe Operateur est
    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 mod;
     
     
    import java.util.Date;
    import java.util.List;
     
     
     
    import org.hibernate.Session;
     
    import util.HibernateUtil;
     
    public class Operateur {
    	public List chercheClientsParMotCles(String motCle){
    		Session session=HibernateUtil.getSessionFactory().getCurrentSession();
    	 	session.beginTransaction();
    	 	List lesCli= session.createQuery("from CLIENT where nom:=y").setString("y", motCle).list();
     
    	 	return lesCli;
     
    	}
     
    	public Abonnement getAbonnement(Long idAb){
    		Session session=HibernateUtil.getSessionFactory().getCurrentSession();
    	 	session.beginTransaction();
     
    	 	Abonnement ab=(Abonnement)session.load(Abonnement.class,idAb);
     
    	 	ab.getFactures();
     
    		return ab;
     
    	}
     
    	public void addClient(Client c){
    		Session session=HibernateUtil.getSessionFactory().getCurrentSession();
    	 	session.beginTransaction();
    	 	session.save(c);
    	 	session.getTransaction().commit();
    	}
    	public void addAbonnementGSM(String numAb, String nomAb, Date dateAb, double solde, Long idClient, String fidelio){
    		Session session=HibernateUtil.getSessionFactory().getCurrentSession();
    	 	session.beginTransaction();
    	 	Client cli=(Client)session.load(Client.class,idClient);
    	 	AbonnementGSM a= new AbonnementGSM();
    	 	a.setNumAb(numAb);
    	 	a.setNomAb(nomAb);
    	 	a.setDateAb(dateAb);
    	 	a.setSolde(solde);
    	 	a.setFidelio(fidelio);
    	 	cli.addAbonnement(a);
    	 	session.save(a);
    	 	session.getTransaction().commit();
    	}
    	public void addFacture(String numFacture, Date dateFacture, double montant,boolean regle, Long idAb){
    		Session session=HibernateUtil.getSessionFactory().getCurrentSession();
    	 	session.beginTransaction();
    	 	Abonnement a=(Abonnement) session.load(Abonnement.class,idAb);
    	 	Facture f= new Facture();
    	 	f.setNumFacture(numFacture);
    	 	f.setDateFacture(dateFacture);
    	 	f.setMontant(montant);
    	 	a.addFactures(f);
    	 	session.save(f);
    	 	session.getTransaction().commit();
    	}
     
    	public void reglerFacture(Long idFact){
    		Session session=HibernateUtil.getSessionFactory().getCurrentSession();
    	 	session.beginTransaction();
    	 	Facture f=(Facture) session.load(Facture.class, idFact);
    	 	f.setRegle(true);
    	 	session.save(f);
    	 	session.getTransaction().commit();
    	}
     
    }
    Pour la vue, j'utilise le framework Struts
    Voici les fichiers que j'ai créer:
    AbonnementForm
    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
    package pres;
     
     
    //import java.util.Vector;
     
    import java.util.Vector;
     
    import mod.*;
     
    import org.apache.struts.action.ActionForm;
     
    public class AbonnementForm extends ActionForm{
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
     
    	private Long idAb;
    	private String action="";
    	private Abonnement ab;
    	private Client cli;
    	private Facture f=new Facture();
    	private Vector vect=new Vector();
        static int temp;
     
    	public Abonnement getAb() {
    		return ab;
    	}
    	public void setAb(Abonnement ab) {
    		this.ab = ab;
    	}
    	public Client getCli() {
    		return cli;
    	}
    	public void setCli(Client cli) {
    		this.cli = cli;
    	}
     
    	public static int getTemp() {
    		return temp;
    	}
    	public static void setTemp(int temp) {
    		AbonnementForm.temp = temp;
    	}
    	public String getAction() {
    		return action;
    	}
    	public void setAction(String action) {
    		this.action = action;
    	}
    	public Vector getVect() {
    		return vect;
    	}
    	public void setVect(Vector vect) {
    		this.vect = vect;
    	}
    	public Facture getF() {
    		return f;
    	}
    	public void setF(Facture f) {
    		this.f = f;
    	}
    	public Long getIdAb() {
    		return idAb;
    	}
    	public void setIdAb(Long idAb) {
    		this.idAb = idAb;
    	}
    }
    ActionAbonnement
    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
    package pres;
     
     
     
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
     
    import mod.*;
     
     
     
     
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
     
     
     
    public class ActionAbonnement {
     
    	public ActionForward execute(
    			 ActionMapping map, 
    			 ActionForm form, 
    			 HttpServletRequest request, 
    			 HttpServletResponse response) throws Exception {
    		AbonnementForm af=(AbonnementForm) form;
    		Operateur op=new Operateur();
     
    		if(af.getAction().equals("Rechercher")){
    			af.setAb(op.getAbonnement(af.getIdAb()) );
     
     
    		}
     
    		if(af.getAction().equals("Regler")){
    			op.reglerFacture(af.getIdAb());
     
     
    		}
     
     
     
     
     
     
    		return map.findForward("vueClients");
    	}
    }
    le fichier struts-config.xml
    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
    <?xml version="1.0" encoding="iso-8859-1"?>
    <!DOCTYPE struts-config PUBLIC
              "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
              "http://struts.apache.org/dtds/struts-config_1_2.dtd">
     
    <struts-config>
     <form-beans>
    	<form-bean name="af" type="pres.AbonnementForm"/>
     </form-beans>
     <global-forwards>
      <forward name="vueClients" path="/vues/abonnement.jsp"/>
     </global-forwards>
     <action-mappings>
    	<action 
    	 path="/abonnement" 
    	 name="af" 
    	 type="pres.AbonnementAction" 
    	 scope="request"
     
    	 />
     </action-mappings>
     <message-resources parameter="ApplicationResources"/>
    </struts-config>
    et finalement la vue abonnement.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
    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
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%> 
    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>       
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>  
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    	<head>
    		<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    		<title>Insert title here</title>
    	</head>
    	<body>
    		<html:form action="abonnement.do" method="post">
    			<table border="1">
    				<tr>
    					<td>Entrer le numeros d'abonnement</td>
    					<td><html:text property="idAb" value=""></html:text></td>
    					<td><html:submit property= "action" value="Rechercher"></html:submit></td>
    				</tr>
    			</table>
    		</html:form><br>
     
    		<table border="1">
     
    			<tr>
    				<td>id Abonnement</td>
    				<td>num Abonnement</td>
    				<td>nom Abonnement</td>
    				<td>date Abonnement</td>
    				<td>solde</td>
    				<td>fidelio</td>
    				<td>debit</td>
    			</tr>
    			 <logic:iterate id="a" name="af" property="ab" >
    			<tr>
        			<td><bean:write name="a"  property="idab"  /></td>
        			<td><bean:write name="a" property="numAb"/></td>
        			<td><bean:write name="a" property="nomAb"/></td>
        			<td><bean:write name="a" property="ateAb"/></td>
        			<td><bean:write name="a" property="solde"/></td>
        			<td><bean:write name="a" property="fidelio"/></td>
        			<td><bean:write name="a" property="debit"/></td>
       			</tr>
       			</logic:iterate>
    	</table>
     
    		<table>
    			<tr>
    				<td>id Client</td>
    				<td>nom</td>
    				<td>email</td>
    				<td>telephone</td>
    				<td>ville</td>
    			</tr>
    			<logic:iterate id="c" name="af" property="cli" >
     
    			<tr>
    			 	<td><bean:write name="c" property="cli.idClient"/></td>
    			 	<td><bean:write name="c" property="cli.nom"/></td>
    			 	<td><bean:write name="c" property="cli.email"/></td>
    			 	<td><bean:write name="c" property="cli.tel"/></td>
    			 	<td><bean:write name="c" property="cli.ville"/></td>
    		 	</tr>
    		 	</logic:iterate>
    		</table>
     
    		<table>
    			<tr></tr>
    			<logic:iterate id="fact" name="af" property="f">
    			<tr>
    				<td><bean:write name="fact" property="f.idFacture"/></td>
    			 	<td><bean:write name="fact" property="f.numFacture"/></td>
    			 	<td><bean:write name="fact" property="f.dateFacture"/></td>
    			 	<td><bean:write name="fact" property="f.montant"/></td>
     
    			</tr>
    			</logic:iterate>
    		</table>
    	</body>
    </html>
    quand j'ouvre la page, le navigateur me dit que le path abonnement n'a pas pu etre créer.
    merci de jeter un petit coup d'oeil à mon travail et me dire ce qui ne va pas si c'est possible.

  2. #2
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    Une petite stacktrace ?

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2008
    Messages : 101
    Par défaut
    voici le stacktrace

    type Rapport d'exception
    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
     
    message
     
    description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.
     
    exception
     
    javax.servlet.ServletException: No collection found
        org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
        org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
        org.apache.jsp.vues.abonnement_jsp._jspService(abonnement_jsp.java:288)
        org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
     
    cause mère
     
    javax.servlet.jsp.JspException: No collection found
        org.apache.struts.taglib.logic.IterateTag.doStartTag(IterateTag.java:236)
        org.apache.jsp.vues.abonnement_jsp._jspService(abonnement_jsp.java:106)
        org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

  4. #4
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    C'est ton tag logic:iterate qui pose problème.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <logic:iterate id="a" name="af" property="ab" >
    Il n'y a pas de collection dans ton Form ayant le nom "af".

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 433
    Par défaut
    Essaie d'eviter des nom comme f , ou af , ou ag , car ça perturbe la bonne lisibilité de ton code , aussi , je te conseille de voire le projet display et utiliser le tag display:table , qui te donne la possibilité de trier et d'afficher tes résultats selon des pages!

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2008
    Messages : 101
    Par défaut
    bonjour
    je ne trouve pas le probleme avec af car dans l'actionform j'ai bien creer un form que j'ai nommée af.

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

Discussions similaires

  1. [MCD] Projet de gestion d'un parc de matériel informatique
    Par merimac dans le forum Schéma
    Réponses: 15
    Dernier message: 20/12/2013, 10h33
  2. Réponses: 4
    Dernier message: 05/01/2012, 21h19
  3. Architecture projet de gestion avec dynamisme
    Par n8ken dans le forum Plateformes (Java EE, Jakarta EE, Spring) et Serveurs
    Réponses: 15
    Dernier message: 20/04/2009, 15h41
  4. Rendre invisible projet dans Gestion de tâches
    Par cocot dans le forum Delphi
    Réponses: 2
    Dernier message: 29/01/2007, 16h45
  5. Gestion des factures avec interbase
    Par AlexB59 dans le forum Bases de données
    Réponses: 1
    Dernier message: 25/10/2005, 12h05

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