J'ai des valeurs dans ma base de données qui peuvent être nulles si elles n'ont pas déjà été entrées.
Mais lorsque j'utilise Thymeleaf dans mon HTML, cela donne une erreur lors de l'analyse des valeurs nulles.
Y at-il un moyen de gérer cela?
Le plus court chemin utilise '?' opérateur. Si vous avez une entité utilisateur avec une adresse incorporée afin d'accéder aux champs de l'entité d'adresse et de les imprimer si l'adresse n'est pas nulle, sinon il y aura une colonne vide:
<td th:text="${user?.address?.city}"></td>
Bien sûr il y a. Vous pouvez par exemple utiliser les expressions conditionnelles . Par exemple:
<span th:text="${someObject.someProperty != null} ? ${someObject.someProperty} : 'null value!'">someValue</span>
Vous pouvez même omettre l'expression "else":
<span th:text="${someObject.someProperty != null} ? ${someObject.someProperty}">someValue</span>
Vous pouvez également consulter l'opérateur Elvis pour afficher les valeurs par défaut.
Vous pouvez utiliser 'the: if' avec 'the: text'
<span th:if="${someObject.someProperty != null}" th:text="${someObject.someProperty}">someValue</span>
Ceci peut également être géré en utilisant l'opérateur elvis?:
qui ajoutera une valeur par défaut lorsque le champ est null:
<span th:text="${object.property} ?: 'default value'"></span>
Vous avez fait deux fois la vérification lorsque vous créez
${someObject.someProperty != null} ? ${someObject.someProperty}
Vous devriez le faire propre et simple comme ci-dessous.
<td th:text="${someObject.someProperty} ? ${someObject.someProperty} : 'null value!'"></td>
<p data-th-text ="${#strings.defaultString(yourNullable,'defaultValueIfYourValueIsNull')}"></p>
Il convient également de consulter la documentation de l’assistant intégré #objects: https://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#objects
Il est utile: ${#objects.nullSafe(obj, default)}
J'utilise
<div th:text ="${variable != null} ? (${variable != ''} ? ${variable} : 'empty string message') : 'null message' "></div>