Changer une variable JSTL
Salut a tous,
Voila je débute sur la techno jstl et j ai un petit souci avec.
Tout d abord voici mon code
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
| <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> |
Sur le cursor de base qui est
Code:
<c:set var="cursor" value="${nodes }" scope="request"></c:set>
Il n'y a aucun souci.
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"
Code:
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> |
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 !
En gros, le code écrit en dur devrais ressembler a cela
Code:
<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
Code:
1 2 3 4
| if(clavier_question.equals("yes"))
{
cursor = cursor.getLeftnode();
} |
Merkiiii