web-dev-qa-db-ja.com

Thymeleaf-チェックされた属性を条件付きで入力に追加する方法

ご存じのとおり、inputコンポーネントには、チェックボックスをデフォルトで有効にするかどうかを示す属性checkedがあります。

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

デフォルトでチェックボックスを無効にするには、checked例外を宣言する必要があります。 Thymeleafのフラグによってchecked属性を設定することは可能ですか?

24
mtyurt

公式のthymeleafの文書によると

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.activebooleanでなければなりません。

したがって、あなたの場合、Andreaのようになります、

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

少し掘り下げた後、解決策を見つけました。がある 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がtrueの場合、次のものに置き換えられます。

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

flagがfalseの場合、次のものに置き換えられます。

<p></p>
6
mtyurt

次のように、thymeleafのラジオ入力にチェック属性を条件付きで追加できます。

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

ここでsales_typeがCREDITの場合、ラジオがチェックされます。それ以外の場合は、未チェックのままになります。

1
Ameera Najah Kv

どちらの提案された解決策も私にとってはうまくいきませんでした。

これはうまくいきました:

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

プロパティのtrueまたはfalseの値に基づいて、thymeleafにチェックボックス(チェックマークのオン/オフ)を表示する問題に直面しました。次の方法で解決しました。

コントローラーのメソッド

@RequestMapping(value = "/test")
public String showCheckbox(Model model) {
 boolean myBooleanVariable = false;
 model.addAttribute("myBooleanVariable", myBooleanVariable);
 return "sample-checkbox";
}

HTMLページで:

<input type="checkbox" name="myBooleanVariable" th:checked="${myBooleanVariable}"/>
0
Abdur Rahman