Comme vous le savez, le composant input
a un attribut, checked
pour indiquer si la case à cocher est activée ou non.
<input type="checkbox" name="mycheckbox" checked="checked"/>
Pour désactiver la case à cocher par défaut, l'exception checked
doit être déclarée. Est-il possible de définir l'attribut checked
par un indicateur dans Thymeleaf?
Selon la documentation officielle de la thymeleaf
http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#fixed-value-boolean-attributes
th:checked
est considéré comme un attribut booléen à valeur fixe.
<input type="checkbox" name="active" th:checked="${user.active}" />
Où user.active
devrait être une boolean
.
Donc, dans votre cas, cela devrait être comme Andrea,
<input type="checkbox" name="mycheckbox" th:checked="${flag}" />
Après avoir creusé un peu, j'ai trouvé la solution. Il existe un attribut th:checked
à cette fin.
Cela marche:
<input type="checkbox" name="mycheckbox" th:checked="${flag} ? 'checked'">
Cela échoue:
<input type="checkbox" name="mycheckbox" th:checked="${flag} ? 'checked' : ''">
Si checked=""
est défini sur input
composant, il est coché. Cette méthode est également valable pour les attributs personnalisésth:attr
. Considérons l'exemple suivant:
<p th:attr="customattr=${flag}?'attr'></p>
Si flag
est vrai, il est remplacé par:
<p customattr="attr"></p>
Si flag
est faux, il est remplacé par:
<p></p>
Vous pouvez conditionnellement ajouter un attribut vérifié à l'entrée radio dans thymeleaf comme suit:
<input type="radio" th:checked="${sales.sales_head.sales_type} == CREDIT" class="sales_type" value="CREDIT" name="sales_type" >
Ici, si sales_type est CREDIT, la radio sera vérifiée. Sinon, il reste décoché.
Aucune des solutions suggérées n'a fonctionné pour moi.
Celui-ci a fonctionné:
th:checked="${#strings.equals(param.myRequestParameterXYZ, 'foobar')}"