web-dev-qa-db-ja.com

値がnullのときにThymeleafを使用する

データベースにいくつかの値がありますが、まだ入力されていない場合はnullになります。

しかし、htmlでThymeleafを使用すると、null値の解析時にエラーが発生します。

これを処理する方法はありますか?

56
serkan

最短の方法は「?」を使用することですオペレーター。アドレスエンティティのフィールドにアクセスし、アドレスがnullでない場合にそれらを印刷するために、アドレスエンティティが埋め込まれたユーザーエンティティがある場合は、空の列になります。

<td th:text="${user?.address?.city}"></td>
97
Orest

確かにあります。たとえば、 条件式 を使用できます。例えば:

<span th:text="${someObject.someProperty != null} ? ${someObject.someProperty} : 'null value!'">someValue</span>

「else」式を省略することもできます。

<span th:text="${someObject.someProperty != null} ? ${someObject.someProperty}">someValue</span>

Elvis operator を見て、デフォルト値を表示することもできます。

51
tduchateau

「the:if」と「the:text」を併用できます

<span th:if="${someObject.someProperty != null}" th:text="${someObject.someProperty}">someValue</span>
12
Roberto

これは elvis operator?:を使用して処理することもでき、フィールドがnullの場合にデフォルト値を追加します。

<span th:text="${object.property} ?: 'default value'"></span>
8

作成時に2回のチェックを行いました

${someObject.someProperty != null} ? ${someObject.someProperty}

以下のようにクリーンでシンプルに行う必要があります。

<td th:text="${someObject.someProperty} ? ${someObject.someProperty} : 'null value!'"></td>
6
Ah Hiang
   <p data-th-text ="${#strings.defaultString(yourNullable,'defaultValueIfYourValueIsNull')}"></p>
5
Vazgen Torosyan

#objectsビルトインヘルパーのドキュメントもご覧ください: https://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#objects

便利です:${#objects.nullSafe(obj, default)}

2
Alex Tsumarau

私が使う

<div th:text ="${variable != null} ? (${variable != ''} ? ${variable} : 'empty string message') : 'null message' "></div>
1
Palash

私のために働いているこのソリューションを使用できます

<span th:text="${#objects.nullSafe(doctor?.cabinet?.name,'')}"></span>
0
SAAD BELEFQIH