У моїй базі даних є деякі значення, які можуть бути нульовими, якщо вони ще не були введені.
Але коли я використовую Thymeleaf у своєму html, це видає помилку при аналізі нульових значень.
Чи є спосіб впоратися з цим?
Відповіді:
Найкоротший спосіб - використовувати "?" оператора. Якщо у вас є сутність користувача із вбудованою суттю Address, щоб отримати доступ до полів сутності Address і роздрукувати їх, якщо адреса не є нульовою, інакше тут буде пустий стовпець:
<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, щоб відобразити значення за замовчуванням.
Edit:
Додано ${...}
умову if, оскільки ви її пропустили. +1 для потрійного виразу в th:text
.
Це також можна обробити за допомогою оператора elvis, ?:
який додасть значення за замовчуванням, коли поле буде нульовим:
<span th:text="${object.property} ?: 'default value'"></span>
<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)}
Ви можете використовувати це рішення, воно працює для мене
<span th:text="${#objects.nullSafe(doctor?.cabinet?.name,'')}"></span>
?.
до документів Spring Expression Language оператор називається оператором "безпечної навігації" .