Ich habe einige Werte in meiner Datenbank, die null sein können, wenn sie noch nicht eingegeben wurden.
Wenn ich jedoch Thymeleaf in meinem HTML-Code verwende, tritt beim Parsen von Nullwerten ein Fehler auf.
Gibt es eine Möglichkeit, damit umzugehen?
?.
Operator wird gemäß den Spring Expression Language-Dokumenten als "sichere Navigation" bezeichnet .Sicher gibt es. Sie können beispielsweise die bedingten Ausdrücke verwenden . Zum Beispiel:
<span th:text="${someObject.someProperty != null} ? ${someObject.someProperty} : 'null value!'">someValue</span>
Sie können sogar den Ausdruck "else" weglassen:
<span th:text="${someObject.someProperty != null} ? ${someObject.someProperty}">someValue</span>
Sie können sich auch den Elvis-Operator ansehen , um Standardwerte anzuzeigen.
quelle
Edit:
Die${...}
für die if-Bedingung wurde hinzugefügt , da Sie sie verpasst haben. +1 für den ternären Ausdruck inth:text
.Dies kann auch mit dem elvis-Operator behandelt
?:
werden, der einen Standardwert hinzufügt, wenn das Feld null ist:<span th:text="${object.property} ?: 'default value'"></span>
quelle
Sie können 'th: if' zusammen mit 'th: text' verwenden.
<span th:if="${someObject.someProperty != null}" th:text="${someObject.someProperty}">someValue</span>
quelle
!= null
nur<span th:if="${someObject.someProperty}" ...
ist genugSie haben beim Erstellen die doppelte Überprüfung durchgeführt
${someObject.someProperty != null} ? ${someObject.someProperty}
Sie sollten es sauber und einfach wie unten machen.
<td th:text="${someObject.someProperty} ? ${someObject.someProperty} : 'null value!'"></td>
quelle
<p data-th-text ="${#strings.defaultString(yourNullable,'defaultValueIfYourValueIsNull')}"></p>
quelle
Sehen Sie sich auch die Dokumentation zum integrierten Helfer #objects an: https://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#objects
Es ist nützlich:
${#objects.nullSafe(obj, default)}
quelle
Sie können diese Lösung verwenden, die für mich funktioniert
<span th:text="${#objects.nullSafe(doctor?.cabinet?.name,'')}"></span>
quelle
ich benutze
<div th:text ="${variable != null} ? (${variable != ''} ? ${variable} : 'empty string message') : 'null message' "></div>
quelle
Der kürzeste Weg! Es funktioniert für mich, wobei NA mein Standardwert ist.
<td th:text="${ins.eValue!=null}? ${ins.eValue}:'NA'" />
quelle