2016-12-09 9 views
2

その内容に基づいてテキストを表示したいですか?例えば、ステータスがACCEPTEDに等しい場合、私はこの単語を表示したい、そうでない場合は表示しない。私が持っているもの:Thymeleaf on Stringの場合

<td th:if="${trip.tripStatus} == 'ACCEPTED'" th:text="${trip.tripStatus}"></td> 

しかし、それはそのように動作しないようです。

+0

あなたは '}'を見逃しました。$ {trip.tripStatus == 'ACCEPTED'} "th:text =" $ {trip.tripStatus} ">'? – kukkuz

+0

[Thymeleafでif-elseを実行する方法]の可能な複製?(http://stackoverflow.com/questions/13494078/how-to-do-if-else-in-thymeleaf) – ben3000

+0

私の質問を編集しました。私は別の可能性があります重複を読むが、ここでは別のケースと私はそれを動作させることができませんでした​​ – jarosik

答えて

1

あなたはこれに対処したいと考えています。しかし、とにかく私は解決策を投稿している、それは他人を助けるかもしれない。 ENUMタイプをStringと比較する場合は、toStringメソッドを使用してENUMタイプをStringに変換します。

<td th:if="${#strings.toString(trip.tripStatus)} == 'ACCEPTED'" th:text="${trip.tripStatus}"></td> 
4

@ ak38あなたが投稿した解決策はうまくいきますが、それは完全ではありません。あなたが列挙型を比較したい場合は、この表記を使用する必要がありますいくつかの理由で、他のプログラマは、あなたのコードが目立たない作業するACCEPTするACCEPTEDからこの列挙型の名前を変更し、条件を満たしたことがない場合は

<td th:if="${trip.tripStatus == T(my.package.Status).ACCEPTED}" th:text="${trip.tripStatus}"></td> 

をしばらく意志上記のバージョンビューがその変更に対して準備されていないことを通知する例外をスローします。

関連する問題