>(gt), <(lt), >=(ge), <=(le), !(not), ==(eq), !=(neq, ne)
th:*
속성을 지정하는 방식으로 동작한다. th:*
로 속성을 적용하면 기존 속성을 대체한다. 기존 속성이 없으면 새로만든다.<tr th:each="user,userStat:${users}">
each로 for문처럼 반복루프를 설정할 수 있다.
<table border="1">
<tr>
<th>count</th>
<th>username</th>
<th>age</th>
<th>etc</th>
</tr>
<!-- userStat : 현재 loop에 대한 상태를 알려준다. -->
<tr th:each="user , userStat : ${users}">
<td th:text="${userStat.count}">count</td>
<td th:text="${user.username}">username</td>
<td th:text="${user.age}">age</td>
<td>
index = <span th:text="${userStat.index}"></span>
count = <span th:text="${userStat.count}"></span>
size = <span th:text="${userStat.size}"></span>
first = <span th:text="${userStat.first}"></span>
last = <span th:text="${userStat.last}"></span>
current = <span th:text="${userStat.current}"></span>
</td>
</tr>
</table>
코딩을 넣은 결과 다음과 같은 결과가 나온다.
index는 0부터 시작하고 count는 1부터 시작하는 차이점이 있다는걸 잊지말자, current는 주소값을 받아오기에 현재 저렇게 표기가 된다.
예를 들어
<td> <span th:text="${user.age}"></span> <span th:text="'미성년자'" th:if="${user.age lt 20}"></span> <span th:text="'미성년자'" th:unless="${user.age ge 20}"></span> </td>
라고 코딩을 완성했다면 age < 20 을 if에서는 age < 20으로 조건을걸어두면 되지만, unless는 반대로 해야하기 때문에 age >= 20 으로 조건을 걸어두는게 보인다, 이상, 이하, 미만, 초과 도 고려해야하는 모습이다.
<span>...</span>
부분 자체가 렌더링 되지 않고 사라진다<!-- -->
<!--/* */-->
<!--/*/ /*/-->
코딩을 이렇게 짜보고 결과를 확인해보자.
도메인 결과
개발자 모드확인 결과.
주석이 보이는것이 있고 그렇지 않은것이 있다.
현재 전부를 설명하지 않았으므로 부족한 정보에 대해서는 다음 링크를 첨부한다.
https://sweets1327.tistory.com/53
https://bnzn2426.tistory.com/140
이 링크가 잘 되어서 참고할만하다.