Bonjour,
j'ai ecrit une fonction recursive. Lorsqu'elle fonctionnera je compte l'utiliser pour generer un menu html dynamique.
Le probleme c'est qu'elle se comporte bizarrement. Elle descend bien dans les appels, elle revient meme au niveau 3 (cf code) mais elle ne revient pas aux etapes precedentes. En gros la deuxieme fois qu'elle arrive au bout du code l'execution s'arrete.
voici le code
et voici l'affichage de la source genere :
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 public String displayMenu(Connection conn, Statement st, int parent, int level)throws IOException { String response = new String(""); int i=0; try{ String sql = new String ("SELECT * FROM REPORT WHERE REPORT_PARENT=" + parent + " AND REPORT_LEVEL=" + level +""); ResultSet rs = null; rs = st.executeQuery( sql ); while (rs.next()) { i++; String hs = new String(rs.getString(4)); if(hs.compareTo("Y")==0){ response = response.concat("level " + level + " " + rs.getString(2) + " > dans le if\n"); Menu m = new Menu(); int dad = rs.getInt(1); int dad_level = rs.getInt(6)+1; response = response.concat(m.displayMenu(conn, st,dad,dad_level)); } else { response = response.concat("level " + level + " " + rs.getString(2) + " > dans le else\n"); } } response=response.concat("level : " + level + ", " + i + " boucles."); rs.close(); } catch (SQLException E){ System.err.println(E.getMessage()); } return response; }
j'ai affiche plusieurs temoins de passage
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 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> <link rel="stylesheet" type="text/css" href="styles.css"> </head> <body> <div class="conteneur" align="center"> Login : jerome<br> Login : xiele<br> Begin-> level 1 Sales > dans le if level 2 Sales packages > dans le if level 3 PDF > dans le else level 3 Excel > dans le else level : 3, 2 boucles. </div> </body> </html>
Partager