2013-12-17 70 views
31

私は自分のデータベースにいくつかの値を持っています。値がnullの場合にThymeleafを使用

私はhtmlでThymeleafを使用すると、null値を解析するときにエラーが発生します。

これを処理する方法はありますか?

答えて

40

あります。たとえば、conditional expressionsを使用できます。たとえば:

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

あなたも、「他の」という表現を省略することができます

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

をまた、デフォルト値を表示するElvis operatorを見てみることができます。

+0

'編集:'あなたがそれを見落としたように '$ {...}'を追加しました。 'th:text'の三項式の+1です。 – Lucky

+0

複数の$ {...}が必要な理由を説明してください。両方の代替にプレフィックスを付ける場合はどうすればよいですか? 'Foo:'代替案の中で2回指定する必要がありますか? – lilalinux

+0

あなたの答えは解決策として認められるべきです。ありがとうございました。 – russellhoff

2

あなたは

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

を作成するときは、以下のようにクリーンでシンプルなそれを行う必要があります二度チェックをやりました。

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

最短方法は '?'を使用しています。オペレーター。あなたは住所エンティティのアクセス分野に順に埋め込まれたアドレスエンティティとユーザーエンティティを持っており、アドレスがnullでない場合、それらを印刷する場合は、そうでない場合は、ここで空の列になります。

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

これは最高のansです –

+0

'?.'演算子は[安全なナビゲーション]演算子と呼ばれ、[Spring Expression Language docs](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
あなたは番目の「を使用することができます

: 'と一緒に':テキスト '

<span th:if="${someObject.someProperty != null}" th:text="${someObject.someProperty}">someValue</span> 
関連する問題