2013-12-17 11 views
31

Ich habe einige Werte in meiner Datenbank, die null sein können, wenn sie nicht bereits eingegeben worden sind.Verwenden von Thymeleaf, wenn der Wert null ist

Aber wenn ich Thymeleaf in meinem HTML verwende, gibt es einen Fehler beim Parsen von Nullwerten.

Gibt es eine Möglichkeit, damit umzugehen?

Antwort

40

Sicher gibt es. Sie können zum Beispiel den conditional expressions verwenden. Zum Beispiel:

<span th:text="${someObject.someProperty != null} ? ${someObject.someProperty} : 'null value!'">someValue</span> 

Sie können sogar die „else“ Ausdruck weglassen:

<span th:text="${someObject.someProperty != null} ? ${someObject.someProperty}">someValue</span> 

Sie auch einen Blick auf die Elvis operator ergreifen können, um Standardwerte angezeigt werden.

+0

'Edit:' Die' $ {...} 'für die if-Bedingung hinzugefügt, da Sie sie verpasst haben. +1 für den ternären Ausdruck in 'th: text'. – Lucky

+0

Könnten Sie bitte erklären, warum mehrere $ {...} benötigt werden? Was, wenn ich beiden Alternativen z. "Foo:". Müsste ich es zweimal in den Alternativen angeben? – lilalinux

+0

Ihre Antwort sollte als Lösung zugelassen werden. Vielen Dank. – russellhoff

2

Sie haben zweimal die Prüfung gemacht, wenn Sie

${someObject.someProperty != null} ? ${someObject.someProperty} 

Sie erstellen sollten, wie unten, damit er sauber und einfach tun.

<td th:text="${someObject.someProperty} ? ${someObject.someProperty} : 'null value!'"></td> 
50

Der kürzeste Weg ist '?' Operator. Wenn Sie Benutzer Einheit mit eingebetteter Entität Adresse, um den Zugriff auf Felder von Entität Adresse und ausdrucken, wenn Adresse nicht Null ist, andernfalls wird hier eine leere Spalte sein:

<td th:text="${user?.address?.city}"></td> 
+0

Dies ist die beste Ans. –

+0

Der '? .' - Operator wird gemäß der [Spring Expression Language-Dokumentation] als" sicherer Navigationsoperator "bezeichnet (https://docs.spring.io/spring/docs/4.2.x/spring) -framework-reference/html/expressions.html # expressions-operator-safe-navigation). – rdguam

2
<p data-th-text ="${#strings.defaultString(yourNullable,'defaultValueIfYourValueIsNull')}"></p> 
1

Sie ‚th verwenden können: falls 'zusammen mit' th: text '

Verwandte Themen