web-dev-qa-db-fra.com

Thymeleaf - Comment ajouter un attribut vérifié à une entrée conditionnelle

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?

19
mtyurt

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}" />

user.active devrait être une boolean.

Donc, dans votre cas, cela devrait être comme Andrea,

<input type="checkbox" name="mycheckbox" th:checked="${flag}" />
42
Faraj Farook

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>
6
mtyurt

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é.

1
Ameera Najah Kv

Aucune des solutions suggérées n'a fonctionné pour moi.

Celui-ci a fonctionné:

th:checked="${#strings.equals(param.myRequestParameterXYZ, 'foobar')}"
0
redochka