データベースにいくつかの値がありますが、まだ入力されていない場合はnullになります。
しかし、htmlでThymeleafを使用すると、null値の解析時にエラーが発生します。
これを処理する方法はありますか?
最短の方法は「?」を使用することですオペレーター。アドレスエンティティのフィールドにアクセスし、アドレスがnullでない場合にそれらを印刷するために、アドレスエンティティが埋め込まれたユーザーエンティティがある場合は、空の列になります。
<td th:text="${user?.address?.city}"></td>
確かにあります。たとえば、 条件式 を使用できます。例えば:
<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 を見て、デフォルト値を表示することもできます。
「the:if」と「the:text」を併用できます
<span th:if="${someObject.someProperty != null}" th:text="${someObject.someProperty}">someValue</span>
これは elvis operator?:
を使用して処理することもでき、フィールドがnullの場合にデフォルト値を追加します。
<span th:text="${object.property} ?: 'default value'"></span>
作成時に2回のチェックを行いました
${someObject.someProperty != null} ? ${someObject.someProperty}
以下のようにクリーンでシンプルに行う必要があります。
<td th:text="${someObject.someProperty} ? ${someObject.someProperty} : 'null value!'"></td>
<p data-th-text ="${#strings.defaultString(yourNullable,'defaultValueIfYourValueIsNull')}"></p>
#objectsビルトインヘルパーのドキュメントもご覧ください: https://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#objects
便利です:${#objects.nullSafe(obj, default)}
私が使う
<div th:text ="${variable != null} ? (${variable != ''} ? ${variable} : 'empty string message') : 'null message' "></div>
私のために働いているこのソリューションを使用できます
<span th:text="${#objects.nullSafe(doctor?.cabinet?.name,'')}"></span>