| septembre 2010 | ||||||
| lun. | mar. | mer. | jeu. | ven. | sam. | dim. |
| 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 | |||
| < août | sept. | oct. > | ||||
html:checkbox ne marche pas [Permalink]
Fri Aug 01 00:01:01 CEST 2008
Si vous travailler assez longtemps avec Struts, tôt ou tard vous allez le constater : <html:checkbox> ne marche pas. Ou bien s'il marche, son comportement est trop complexe et non-intuitif pour qu'il soit utile.
Que faire ? La solution peut sembler radical, mais je vous le conseille vivement : il faut s'en passer tout simplement. Avec un peu de JavaScript, ce n'est pas si brutal que ça. Au lieu de mettre :
<html:checkbox property="champs" />
On met :
<input
type="checkbox"
id="champs2"
onchange="Util.setValue('champs', $('champs2').checked);" />
<html:hidden property="champs" />
<script>
Util.setValue('champs2', Util.getValue('champs'));
</script>
Et c'est tout. (J'utilise mon propre classe "Util" pour le JavaScript, mais son fonctionnement est clair.) Nos actions récupèrent le champs pareil, qu'il soit dans un checkbox ou un hidden, et la champs s'initialise et garde sa valeur comme on le voudrait.