Thymeleaf - Как добавить проверенный атрибут для ввода условно

Как известно, компонент input имеет атрибут checked, чтобы пометить флажок как включен по умолчанию или нет.

<input type="checkbox" name="mycheckbox" checked="checked"/>

Чтобы отключить флажок по умолчанию, следует объявить исключение checked. Можно ли установить атрибут checked с помощью флага в Thymeleaf?

Ответ 1

Согласно официальной документации тимелеафа

http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#fixed-value-boolean-attributes

th:checked рассматривается как логический атрибут с фиксированным значением.

<input type="checkbox" name="active" th:checked="${user.active}" />

Где user.active должен быть boolean.

Итак, в вашем случае это должно быть, как упоминал Андреа,

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

Ответ 2

После небольшого рытья я узнал решение. Для этой цели существует атрибут th:checked.

Это работает:

<input type="checkbox" name="mycheckbox" th:checked="${flag} ? 'checked'">

Это не удается:

<input type="checkbox" name="mycheckbox" th:checked="${flag} ? 'checked' : ''">

Если для параметра checked="" установлено значение input, оно отмечено как отмеченное. Этот метод действителен и для пользовательских атрибутов th:attr. Рассмотрим следующий пример:

<p th:attr="customattr=${flag}?'attr'></p>

Если flag истинно, оно заменяется на:

<p customattr="attr"></p>

Если flag является ложным, оно заменяется на:

<p></p>

Ответ 3

Вы можете условно добавить проверенный атрибут к радиовходу в thymeleaf, как показано ниже:

 <input type="radio" th:checked="${sales.sales_head.sales_type} == CREDIT" class="sales_type" value="CREDIT"  name="sales_type" >

Здесь, если sales_type - CREDIT, радио будет проверено. В противном случае это останется непроверенным.

Ответ 4

Ни одно из предложенных решений не помогло мне.

Этот работал:

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