У меня есть некоторые значения в моей базе данных, которые могут быть пустыми, если они еще не были введены.
Но когда я использую Thymeleaf в своем html, он дает ошибку при анализе нулевых значений.
Есть ли способ справиться с этим?
У меня есть некоторые значения в моей базе данных, которые могут быть пустыми, если они еще не были введены.
Но когда я использую Thymeleaf в своем html, он дает ошибку при анализе нулевых значений.
Есть ли способ справиться с этим?
Самый короткий способ - '?' оператор. Если у вас есть объект пользователя со встроенным объектом Address, чтобы получить доступ к полям объекта Address и распечатать их, если адрес не равен 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 для отображения значений по умолчанию.
Вы можете использовать 'th: if' вместе с 'th: text'
<span th:if="${someObject.someProperty != null}" th:text="${someObject.someProperty}">someValue</span>
Это также может быть обработано с помощью оператора elvis ?:
, который добавит значение по умолчанию, когда поле имеет значение null:
<span th:text="${object.property} ?: 'default value'"></span>
Вы дважды делали проверку при создании
${someObject.someProperty != null} ? ${someObject.someProperty}
Вы должны сделать это чистым и простым, как показано ниже.
<td th:text="${someObject.someProperty} ? ${someObject.someProperty} : 'null value!'"></td>
<p data-th-text ="${#strings.defaultString(yourNullable,'defaultValueIfYourValueIsNull')}"></p>
Также стоит посмотреть документацию для вспомогательного помощника #объектов: 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>