내 데이터베이스에 아직 입력하지 않은 경우 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>