テンプレートエンジンとして Thymeleaf を使用することにより、単純なdiv
th:if
句を使用して?
通常、次のように条件句を使用できます。
<a href="lorem-ipsum.html" th:if="${condition}">Lorem Ipsum</a>
lorem ipsumページへのリンクを作成しますが、これは条件句がtrueの場合のみです。
私は別のものを探しています:私はブロックを常に見えるようにしたいのですが、状況に応じてクラスを変更できます。
th:classappend
もあります。
<a href="" class="baseclass" th:classappend="${isAdmin} ? adminclass : userclass"></a>
isAdmin
がtrue
の場合、これは次のようになります。
<a href="" class="baseclass adminclass"></a>
はい、CSSクラスを状況に応じて動的に変更できますが、th:if
を使用して変更することはできません。これは elvis operator を使用して実行されます。
<a href="lorem-ipsum.html" th:class="${isAdmin}? adminclass : userclass">Lorem Ipsum</a>
別の非常に似た答えは、「含む」の代わりに「等しい」を使用することです。
<li th:class="${#strings.equals(pageTitle,'How It Works')} ? active : ''">
この目的のために、またブール変数を持っていない場合は、次を使用します:
<li th:class="${#strings.contains(content.language,'CZ')} ? active : ''">
エラーが発生した場合にクラスを追加するだけの場合は、 ドキュメント で言及されているth:errorclass="my-error-class"
を使用できます。
<input type="text" th:field="*{datePlanted}" class="small" th:errorclass="fieldError" />
フォームフィールドタグ(input、select、textarea…)に適用すると、同じタグ内の既存の名前またはth:field属性から検査するフィールドの名前を読み取り、指定したCSSクラスをタグに追加します。そのようなフィールドに関連するエラーがある場合
Th:classのさらに別の使用法は、@ NewbLeechや@Charlesと同じですが、「else」のケースがない場合は最大限に単純化されています。
<input th:class="${#fields.hasErrors('password')} ? formFieldHasError" />
#fields.hasErrors( 'password')がfalseの場合、クラス属性は含まれません。
誰かに役立つかもしれない場合に備えて、私自身の意見を追加するために。これは私が使用したものです。
<div th:class="${request.read ? 'mdl-color-text--grey-800 w500' : ''}"> </div>