On ne peut pas faire une ArrayList de liste de liste de string
Version imprimable
On ne peut pas faire une ArrayList de liste de liste de string
Ben si... tu utilises quelle version de java ?
Je suis avec la lib jre6
Sa me met que arrayList cannot be resolved to a typeCode:List<List<String>> list = new ArrayList<List<List<String>>>();
Si tu utilises Eclipse, mets-toi derriere ArrayList et fais Ctrl+Espace.
L'auto-completion te proposera d'ajouter l'import qu'il faut.
Sinon, rajoute à la main cette ligne en début de source (c'est plus propre)
Code:
1
2<%@page import="java.util.ArrayList"%>
Non toujours pas
Code:type mismatch cannot convert from ArrayList<list<list<string>>> to list<list<string>>
List pas list !
C'est ce que j'ai fais. j'ai juste oublier de les mettre dans l'erreur
OK, montre la page actuelle, se sera plus simple.
voila ma page JSP
Code:
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 <form name = "rechAffaire" method ="post" action="/AppRevege/rechAff"> <fieldset> <legend>Rechercher par n°affaire</legend><br /> <span>n°Affaire :</span> <select name="affaire" id="affaire" style = "width: 120px"> <option value = -1>-------n°affaire-------</option> <% DBConnexion dbc_aff = new DBConnexion(); String sql_aff = "SELECT num_affaire FROM numero_aff ORDER BY num_affaire"; ResultSet resultat_aff = dbc_aff.recupereRequete(sql_aff); while(resultat_aff.next()) { out.print("<option value = "+resultat_aff.getString("num_affaire")+">"+resultat_aff.getString("num_affaire")+"</option>"); } dbc_aff.closeConnexion(); %> </select> <% List<List<String>> list = new ArrayList<List<List<String>>>(); Iterator it = list.iterator(); out.write("<TABLE BORDER=1 width='100%'><TR><TH>N°Affaire</TH><TH>N°CTV</TH><TH>N°CCS</TH><TH>N°</TH><TH>Type Voie</TH><TH width='25%'>Nom Voie</TH><TH>CP</TH></TR>"); while (it.hasNext()) { List<String> record = (List<String>)it.next(); Iterator it2 = record.iterator(); out.write("<tr>"); while (it2.hasNext()) { out.write("<td>" + it2.next() + "</td>"); } out.write("</tr>"); } out.write("</table>"); %> </fieldset> </form> <center><img src="images/valider.png" onmouseover="this.src='images/validerhover.png';" onmouseout="this.src='images/valider.png';" onclick="document.getElementById('rechAffaire').submit();" /></center>
Ce n'est qu'une partie, il me faut le tout...
Voila tout le code ma JSP
Et tout le code de ma servletCode:
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 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@ page import="java.sql.*,connexion.*"%> <link rel="stylesheet" href="style.css" type="text/css" /> <%@page import="java.util.List"%> <%@page import="java.util.Iterator"%> <%@page import="java.util.ArrayList"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Rechercher une affaire</title> </head> <body> <form name = "rechAffaire" method ="post" action="/AppRevege/rechAff"> <fieldset> <legend>Rechercher par n°affaire</legend><br /> <span>n°Affaire :</span> <select name="affaire" id="affaire" style = "width: 120px"> <option value = -1>-------n°affaire-------</option> <% DBConnexion dbc_aff = new DBConnexion(); String sql_aff = "SELECT num_affaire FROM numero_aff ORDER BY num_affaire"; ResultSet resultat_aff = dbc_aff.recupereRequete(sql_aff); while(resultat_aff.next()) { out.print("<option value = "+resultat_aff.getString("num_affaire")+">"+resultat_aff.getString("num_affaire")+"</option>"); } dbc_aff.closeConnexion(); %> </select> <% List<List<String>> list = new ArrayList<List<List<String>>>(); Iterator it = list.iterator(); out.write("<TABLE BORDER=1 width='100%'><TR><TH>Id</TH><TH>N°Affaire</TH><TH>N°CTV</TH><TH>N°CCS</TH><TH>N°</TH><TH>Type Voie</TH><TH width='25%'>Nom Voie</TH><TH>CP</TH></TR>"); while (it.hasNext()) { List<String> record = (List<String>)it.next(); Iterator it2 = record.iterator(); out.write("<tr>"); while (it2.hasNext()) { out.write("<td>" + it2.next() + "</td>"); } out.write("</tr>"); } out.write("</table>"); %> </fieldset> </form> <center><img src="images/valider.png" onmouseover="this.src='images/validerhover.png';" onmouseout="this.src='images/valider.png';" onclick="document.getElementById('rechAffaire').submit();" /></center> </body> </html>
Code:
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 package com.eclipse.traitement; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.sql.*; import java.util.ArrayList; import java.util.List; /** * Servlet implementation class for Servlet: TraiterRech * */ @SuppressWarnings("serial") public class TraiterRech extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet { /* (non-Java-doc) * @see javax.servlet.http.HttpServlet#HttpServlet() */ public TraiterRech() { super(); } /* (non-Java-doc) * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String chp_affaire = request.getParameter("affaire"); String url = "jdbc:oracle:thin:@163.89.180.102:1521:ACRPARIS"; String login = "..."; String password = "...*"; List<List<String>> list = new ArrayList<List<String>>(); try{ Connection dbc = DriverManager.getConnection(url,login,password); if (chp_affaire != null) { PreparedStatement pstmt_affaire = dbc.prepareStatement("SELECT id_fouille,num_ctv,num_ccs,num_adr,nom_type_voie,nom_voie,num_cp FROM fouille, ccs,numadr,nomvoie,typevoie,code_postal,numero_aff WHERE fouille.id_numero_aff = numero_aff.id_numero_aff AND fouille.id_ccs = ccs.id_ccs AND fouille.id_numAdr = numadr.id_numAdr AND fouille.id_nom_voie = nomvoie.id_nom_voie AND fouille.id_type_voie = typevoie.id_type_voie AND fouille.id_cp = code_postal.id_cp AND num_affaire= ?"); pstmt_affaire.setString(1, chp_affaire); ResultSet resultat_affaire = pstmt_affaire.executeQuery(); ResultSetMetaData rsmd = resultat_affaire.getMetaData(); while (resultat_affaire.next()) { List<String> record = new ArrayList<String>(); for (int i = 0; i < rsmd.getColumnCount(); i++) { record.add(resultat_affaire.getString(i+1)); } list.add(record); } request.setAttribute("Liste", list); request.getRequestDispatcher("/rechAffaire.jsp").forward(request, response); dbc.close(); } dbc.close(); } catch(Exception e){ e.printStackTrace(); } } }
Je pensais à un problème d'import mais finalement, tu as mis un ">" de trop à droite, il faut ceci :
Code:
1
2 ArrayList<list<list<string>>()
Non yen a pas de trop tu en ouvre trois et tu en referme que deux.
Car si j'en met que deux il me dit qu'il faut que j'en insère un.
J'ai de la m... dans les yeux ce matin, c'est pas possible !
On veut une liste de liste de String : c'est donc
Toi, tu demandes une liste de liste de String et tu créés une liste de liste de liste de StringCode:
1
2 List<List<String>> list = new ArrayList<List<String>>();
Bref, recopie la ligne du haut...Code:
1
2 List<List<String>> list = new ArrayList<List<List<String>>>();
ça affiche bien l'en-tete du tableau mais celui-ci ne se rempli pas
Pourquoi je ne peux pas faire ce cast?
Code:List<List<String>> list = (List<List<String>>) request.getParameter("Liste")
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <% List<List<String>> list = new ArrayList<List<String>>(); Iterator it = list.iterator(); out.write("<TABLE BORDER=1 width='100%'><TR><TH>id</TH><TH>N°Affaire</TH><TH>N°CTV</TH><TH>N°CCS</TH><TH>N°</TH><TH>Type Voie</TH><TH width='25%'>Nom Voie</TH><TH>CP</TH></TR>"); while (it.hasNext()) { List<String> record = (List<String>)it.next(); Iterator it2 = record.iterator(); out.write("<tr>"); while (it2.hasNext()) { out.write("<td>" + it2.next() + "</td>"); } out.write("</tr>"); } out.write("</table>"); %>
Pourquoi ça ne me rempli pas mon tableau?Code:
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 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String chp_affaire = request.getParameter("affaire"); String url = "jdbc:oracle:thin:@....."; String login = "...."; String password = "....."; List<List<String>> list = (List<List<String>>) request.getAttribute("Liste"); try{ Connection dbc = DriverManager.getConnection(url,login,password); if (chp_affaire != null) { PreparedStatement pstmt_affaire = dbc.prepareStatement("SELECT id_fouille,num_ctv,num_ccs,num_adr,nom_type_voie,nom_voie,num_cp FROM fouille, ccs,numadr,nomvoie,typevoie,code_postal,numero_aff WHERE fouille.id_numero_aff = numero_aff.id_numero_aff AND fouille.id_ccs = ccs.id_ccs AND fouille.id_numAdr = numadr.id_numAdr AND fouille.id_nom_voie = nomvoie.id_nom_voie AND fouille.id_type_voie = typevoie.id_type_voie AND fouille.id_cp = code_postal.id_cp AND num_affaire= ?"); pstmt_affaire.setString(1, chp_affaire); ResultSet resultat_affaire = pstmt_affaire.executeQuery(); ResultSetMetaData rsmd = resultat_affaire.getMetaData(); while (resultat_affaire.next()) { List<String> record = new ArrayList<String>(); for (int i = 0; i < rsmd.getColumnCount(); i++) { record.add(resultat_affaire.getString(i+1)); } list.add(record); } request.setAttribute("Liste", list); request.getRequestDispatcher("/rechAffaire.jsp").forward(request, response); dbc.close(); } dbc.close(); } catch(Exception e){ e.printStackTrace(); } }
Ma premier liste ne se rempli pas de la deuxième liste.
Personne peut m'aider?? svp
De plus on dirai que mn dispatcher ne fait pas son travail.