[html] 값이 null 일 때 Thymeleaf 사용

내 데이터베이스에 아직 입력하지 않은 경우 null이 될 수있는 값이 있습니다.

그러나 HTML에서 Thymeleaf를 사용하면 null 값을 구문 분석 할 때 오류가 발생합니다.

이것을 처리 할 방법이 있습니까?



답변

가장 짧은 방법은 ‘?’를 사용하는 것입니다. 운영자. 주소 엔터티의 필드에 액세스하고 주소가 null이 아닌 경우 인쇄하기 위해 포함 된 주소 엔터티가있는 사용자 엔터티가있는 경우, 그렇지 않으면 여기에 빈 열이 있습니다.

<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 연산자 를 살펴보고 기본값을 표시 할 수도 있습니다 .


답변

필드가 null 일 때 기본값을 추가하는 elvis 연산자 ?: 를 사용하여 처리 할 수도 있습니다 .

<span th:text="${object.property} ?: 'default value'"></span>


답변

‘th : if’와 ‘th : text’를 함께 사용할 수 있습니다.

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


답변

당신이 만들 때 두 번 확인했습니다

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

아래와 같이 깔끔하고 간단하게해야합니다.

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


답변

#objects 빌트인 도우미에 대한 문서도 살펴볼 가치가 있습니다.
https://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#objects

유용합니다 : ${#objects.nullSafe(obj, default)}


답변

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