Bonjour,
Je travail sur un projet qui gère une compagnie aérienne, le client doit être capable de se connecter, d'effectuer une recherche puis de pouvoir réserver/annuler son billets.
La ou je bloque un peu c'est au niveau de l'affichage du résultat de la recherche du client.
J'ai créé un JSP me permettant de demander à l'utilisateur la ville de départ ainsi que la ville de destination.
Je traite ces informations dans la servlet suivante :
Voici ma classe gererCompagnieAvion qui gère les requêtes et la connection avec ma base de données et dans laquelle il y à la fonction trouverVol() qui retourne une liste de vols :
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 @WebServlet("/RechercheVol") public class RechercheVol extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public RechercheVol() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub String depart = request.getParameter( "depart" ); String arrive = request.getParameter( "arrive" ); String date = request.getParameter( "date" ); String message; /* * Initialisation du message à afficher : si un des champs obligatoires * du formulaire n'est pas renseigné, alors on affiche un message * d'erreur, sinon on affiche un message de succès */ if ( depart.trim().isEmpty() || arrive.trim().isEmpty() || date.isEmpty() ) { message = "Erreur - Vous n'avez pas rempli tous les champs obligatoires. <br> <a href=\"creerUtilisateur.jsp\">Cliquez ici</a> pour accéder au formulaire de création d'un client."; } else { message = "Utilisateur créé avec succès !"; } Vol unVol = new Vol(); unVol.setVilleDepart(depart); unVol.setVilleDestination(arrive); List<Vol> listeResultat = GererCompagniesAvions.trouverVol(unVol); /* Ajout du bean et du message à l'objet requête */ request.setAttribute("liste", listeResultat); request.setAttribute( "Vol", unVol ); request.setAttribute( "message", message ); /* Transmission à la page JSP en charge de l'affichage des données */ this.getServletContext().getRequestDispatcher( "/affichageRechercheVol.jsp" ).forward( request, response ); } }
Voici ma JSP permettant l'affichage de cette liste
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 public class GererCompagniesAvions { public GererCompagniesAvions(){} public static List<Vol> trouverVol(Vol unVol) { String sql_query = "select * from vols where villeDepart='" + unVol.getVilleDepart() + "' and villeDestination='" + unVol.getVilleDestination() +"';"; List <Vol>listeVols = new ArrayList<Vol>(); try { DriverManager.registerDriver(new com.mysql.jdbc.Driver()); Connection conn = DriverManager .getConnection("jdbc:mysql://localhost/CompagnieAvions?user=Admin&password=123"); Statement stmt = conn.createStatement(); if (stmt.execute(sql_query)) { ResultSet rset = stmt.getResultSet(); while (rset.next()) { Vol volTrouve = new Vol(); volTrouve.setIdVol(Integer.parseInt(rset.getString(1))); DateTimeFormatter format = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.S"); DateTime dateVol = format.parseDateTime(rset.getString(2)); volTrouve.setDateVol(dateVol); volTrouve.setVilleDepart(rset.getString(3)); volTrouve.setVilleDestination(rset.getString(4)); volTrouve.setPrixVol(Integer.parseInt(rset.getString(5))); // System.out.println(rset.getString(3)); listeVols.add(volTrouve); } rset.close(); } stmt.close(); conn.close(); } catch (SQLException e) { System.out.println("Error Code:" + e.getErrorCode()); e.printStackTrace(); } catch (Exception ef) { ef.printStackTrace(); } return listeVols; } }
Ici je ne sais pas comment afficher tous les vols sachant que le.size ne fonctionne pas ... voila j'espere avoir été clair dans ma démarche et je serais très reconnaissant si quelqu'un pouvait m'aider.
Code html : 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 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Resultat de votre recherche</title> </head> <body> <%-- Affichage de la chaîne "message" transmise par la servlet --%> <p class="info">${ message }</p> <p>Depart : ${vol.depart }</p> <p>Arrive : ${vol.arrive }</p> <p>Date : ${vol.date }</p> <% int i=0 ; while(i< listeResultat.size()){ out.print(listeResultat.get(i).getIdVol() + " -- "); out.print(listeResultat.get(i).getVilleDepart() + " -- "); out.print(listeResultat.get(i).getVilleDestination() + " -- "); out.print(listeResultat.get(i).getPrixVol() + " -- "); out.print(listeResultat.get(i).getDateVol().toString("E dd/MM/yyyy HH:mm")); %> </body> </html>
merci d'avance
Partager