Bonjour,
Je rencontre un problème avec l'utilisation du tag <logic:equal> :
Je remplis une liste déroulante avec des données récupérées en base. (Des codes de type "1D", "1A", "2F"... Bref un chiffre suivi d'une lettre.)
Pendant l'alimentation de ma liste, je compare chaque code de la liste avec un code préalablement choisi par l'utilisateur. Si les deux codes sont égaux, j'ajoute "selected" à la balise <option> du code en cours. De cette manière la ligne du code sélectionné par l'utilisateur est sélectionnée dans la liste.
Le logic:equal fonctionne comme attendu pour tous les cas, sauf pour ceux ou le code sélectionné par l'utilisateur est 1D ou 1F. Dans ces cas précis, le logic:equal estimera que 1D = 1D ET 1D = 1F...
Au débugage, dans le cas ou l'utilisateur aura choisi 1D, la ligne 1D sera sélectionnée, puis la ligne 1F aussi finalement...
Mon code (un peu modifié parce que code d'entreprise):
Il y aurait des moyens de contourner ce problème, mais je suis preneur de tous avis et propositions !
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 <logic:iterate id="it" name="maListe" type="com.type.toto.Popo"> <logic:equal name="unBean" property="codeUser" value="<%=it.getCode()>"> <option value="<bean:write name="it" property="code"/>" selected> <bean:write name="it" property="code" /> </option> </logic:equal> <logic:notEqual name="unBean" property="codeUser" value="<%=it.getCode()>"> <option value="<bean:write name="it" property="code"/>"> <bean:write name="it" property="code" /> </option> </logic:notEqual> </logic:iterate>
D'avance merci !
Xav
PS : J'ajoute que le code strictement équivalent mais dans un scriptlet fonctionne correctement.
Partager