comment mettre ça en for each
Code:
1
2
3
4
5 for (Iterator iter = list.iterator(); iter.hasNext();) { String val= (String)iter.next().toString(); System.out.println(val); test.print(val);
Version imprimable
comment mettre ça en for each
Code:
1
2
3
4
5 for (Iterator iter = list.iterator(); iter.hasNext();) { String val= (String)iter.next().toString(); System.out.println(val); test.print(val);
Code:
1
2
3 for(String val: list){ ...... }
je te remercie, pourrais tu m'expliquer un peu plus merci.
J'ai deja regarder la doc java mais je comprend pas.
c'est simple:
on peut utiliser le for each sur toutes les instances implémentant Iterable (les Set, les List, les tableaux, ...)
on écrit le type des éléments contenus dans l'objet à parcourir, puis la variable qui sera modifiée à chaque itération, puis ":", puis l'objet à parcourir.
;)Code:
1
2
3
4 String strings = new String[]{"a", "b", "c"}; for (String s:strings) System.out.println(s); // écrira a, b, c
voila j'ai fait ça
ça me semble bon, mais quand je lanceCode:
1
2
3
4
5 List<TEST> list = testFacade.findAll(); for (TEST val : list){ System.out.println(val) }
j'ai ça
type Exception report
message
descriptionThe server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.ejb.EJBException
note The full stack traces of the exception and its root causes are available in the GlassFish v3 logs.
le problème est ailleurs, je ne pense pas que cela soit la boucle qui soit en cause.
quand ça parle de EJBException, généralement c'est un peu plus tordu qu'une boucle
;)
je pense aussi je recherche je recherche je vous tiens au courant merci a vous bonne journée
Bon en faite j'avais juste oublié de démarrer le serveur apache et mysql grosse grosse erreur lol.
maintenant j'affiche bien mais le seule problème c'est que j'ai qu'une valeur alors qu'il devrais avoir 3 valeurs.
Des idées?
... faire un "System.out.println(list.size())" juste en dessus de la boucle, et constater qu'elle n'en a qu'une seule...
à voir maintenant comment cette liste est construite...
je recupere bien la valeur de 3.
En faite je met dans cette list des valeurs prisent dans une table de base de données.
bon en faite j'avais déjà test mais ça fonctionné pas
mais maintenant oui pourquoi je sais pas.
test.print(val.get...
Bon en faite pas tout a fait résolu, j'ai bien ma liste il y a plusieurs enregistrements dedans 3 lignes pour le moment.
le seul problème, c'est que quand je fait mon for each, je n'arrive qu'a printer 1 seule ligne pourquoi??
on peut voir la méthode complète svp, sans modif de ta part ni tronquature?
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 /* * To change this template, choose Tools | Templates * and open the template in the editor. */ import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintStream; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import javax.ejb.EJB; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import requests.EmployeFacade; import requests.SalaireFacade; @WebServlet(name = "recupData", urlPatterns = {"/recupData"}) public class RecupData extends HttpServlet { @EJB private EmployeFacade employeFacadee; @EJB private SalaireFacade salaireFacade; /** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods. * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter affichageVal = response.getWriter(); List<TEST> list = salaireFacade.findAll(); { for (TEST val : list) { System.out.println(val); System.out.println(list.size()); affichageVal.print((val.getSal() + val.getNom()); affichageVal.close(); } }
voila en gros
Bonjour,
si tu clos le affichageVal dans la boucle le prochain write lèvera un IOEception et ne pourra rien afficher !!
Merci beaucoup en plus ça reste évident, encore une erreur de plus que je ne ferai plus.
merci a vous tous.
Je reste dispo pour expliquer le code.
Bonne journée.