[java] Thymeleaf에서 if-else하는 법?


3 Answers

고객이 로그인했는지 또는 익명인지 여부를 알아 내기 위해이 코드를 시도했습니다. 나는 th:ifth:unless 조건식을 사용하지 않았다. 그것을하는 아주 간단한 방법.

<!-- IF CUSTOMER IS ANONYMOUS -->
<div th:if="${customer.anonymous}">
   <div>Welcome, Guest</div>
</div>
<!-- ELSE -->
<div th:unless="${customer.anonymous}">
   <div th:text=" 'Hi,' + ${customer.name}">Hi, User</div>
</div>
Question

Thymeleaf에서 간단한 if-else를 수행하는 가장 좋은 방법은 무엇입니까?

Thymeleaf와 같은 효과를 내고 싶습니다.

<c:choose>
  <c:when test="${potentially_complex_expression}">
     <h2>Hello!</h2>
  </c:when>
  <c:otherwise>
     <span class="xxx">Something else</span>
  </c:otherwise>
</c:choose>

JSTL.

지금까지 내가 생각한 것 :

<div th:with="condition=${potentially_complex_expression}" th:remove="tag">
    <h2 th:if="${condition}">Hello!</h2>
    <span th:unless="${condition}" class="xxx">Something else</span>
</div>

나는 potentially_complex_expression _complex_expression을 두 번 평가하고 싶지 않습니다. 그래서 로컬 변수 condition 도입했습니다.

아직도 나는 둘 다 사용하는 것을 좋아하지 않는다 th:if="${condition}th:unless="${condition}" .

중요한 것은 내가 2 개의 다른 html 태그를 사용한다는 것입니다. h2span 가정 해 봅시다.

그것을 성취 할 수있는 더 좋은 방법을 제안 할 수 있습니까?




당신이 사용할 수있는

If-then-else:  (if) ? (then) : (else)

예:

'User is of type ' + (${user.isAdmin()} ? 'Administrator' : (${user.type} ?: 'Unknown'))

새로운 사람들이 같은 질문을하는 것이 유용 할 수 있습니다.




<div th:switch="${user.role}"> 
<p th:case="'admin'">User is an administrator</p>
<p th:case="#{roles.manager}">User is a manager</p>
<p th:case="*">User is some other thing</p> 
</div>


<div th:with="condition=${potentially_complex_expression}" th:remove="tag">
<h2 th:if="${condition}">Hello!</h2>
<span th:unless="${condition}" class="xxx">Something else</span>
</div>



더 간단한 경우 (html 태그가 동일한 경우) :

<h2 th:text="${potentially_complex_expression} ? 'Hello' : 'Something else'">/h2>


Related