Salut a tous,
Voila je débute sur la techno jstl et j ai un petit souci avec.
Tout d abord voici mon code
Sur le cursor de base qui 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 <c:forEach items="${ nodes }" var="nodes" varStatus="boucle" begin="0" end="0"> <form> <c:set var="cursor" value="${nodes }" scope="request"></c:set> <c:out value="Cursor de base = "></c:out> <c:out value="${requestScope.cursor.getQuestion() }"></c:out> <br> <c:choose > <c:when test="${not empty nodes.getQuestion() }"> <c:if test="${param.btn eq 'Oui'}" var="oui"> <c:set var="cursor" value="${nodes.getLeftnode() }" scope="request"></c:set> <c:out value="Si tu reponds oui = "></c:out> <c:out value="${requestScope.cursor.getQuestion() }"></c:out> </c:if> <br> <c:if test="${param.btn eq 'Non'}" var="non"> <c:set var="cursor" value="${nodes.getRightnode() }" scope="request"></c:set> <c:out value="Si tu reponds non = "></c:out> <c:out value="${requestScope.cursor.getQuestion() }"></c:out> </c:if> <br> </c:when> </c:choose>
Il n'y a aucun souci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <c:set var="cursor" value="${nodes }" scope="request"></c:set>
Mon problème est que je voudrais modifier CETTE variable la pour qu'a chaque fois que l utilisateur clique sur "oui", le programme affiche une autre question ... et encore une autre et ainsi de suite jusqu’à la fin du programme.
Donc pour cela, j ai fait une boucle qui dit que "tant qu'il y a des questions, tu me vérifie les deux conditions".
Ce qui fait ceci pour le "oui"
Le souci c est qu'il "descend" une seul fois, il ne descend pas plus bas dans l'arbre. Je pense que c est la ligne du "set" qui pose problème mais je ne sais pas comment l écrire !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <c:if test="${param.btn eq 'Oui'}" var="oui"> <c:set var="cursor" value="${nodes.getLeftnode() }" scope="request"></c:set> <c:out value="Si tu reponds oui = "></c:out> <c:out value="${requestScope.cursor.getQuestion() }"></c:out> </c:if>
En gros, le code écrit en dur devrais ressembler a cela
.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <c:set var="cursor" value="${nodes.getLeftnode().getLeftnode() }" scope="request"></c:set>
Ici, ça me donnerais la 2e question et pour avoir la 3e question, il faudrait ajouter un 3e "getLeftnode()" et ainsi de suite
J'avais déjà fait ce programme en java et ça faisait ceci
Merkiiii
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if(clavier_question.equals("yes")) { cursor = cursor.getLeftnode(); }
Partager