반복
@GetMapping("each")
public String each(Model model) {
List<Person> test = new ArrayList<>();
addTestData(test);
model.addAttribute("people", test);
return "each";
}
private void addTestData(List<Person> test) {
Person person1 = new Person("Gil", 25, "컴공", "백앤드");
Person person2 = new Person("SSang", 25, "컴공", "프론트앤드");
Person person3 = new Person("GilSSang", 25, "컴공", "풀스택");
test.add(person1);
test.add(person2);
test.add(person3);
}
- Person 객체의 리스트에 3개의 Person 객체를 넣는다.
- 이를 Model을 통해 넘겨 반복문을 테스트한다.
<table border="1">
<tr>
<th>이름</th>
<th>나이</th>
<th>학과</th>
<th>전공</th>
<th>속성</th>
</tr>
<tr th:each="person : ${people}">
<td th:text="${person.name}">1</td>
<td th:text="${person.age}">2</td>
<td th:text="${person.department}">3</td>
<td th:text="${person.major}">4</td>
<td>
<span th:text="${personStat.index}"/>
<span th:text="${personStat.count}"/>
<span th:text="${personStat.size}"/>
<span th:text="${personStat.even}"/>
<span th:text="${personStat.odd}"/>
<span th:text="${personStat.first}"/>
<span th:text="${personStat.last}"/>
<span th:text="${personStat.current}"/>
</td>
</tr>
</table>
- th:each="반복변수 : ${반복대상객체}"를 통해 반복을 진행한다.
- person 뒤에 반복객체에 대한 상태를 나타내는 파라미터를 추가로 넣을 수 있다. (생략 시, 객체이름+Stat으로 자동 생성)
- index, count, size, even, odd, first, last, current를 사용할 수 있다.
조건
if
<p th:text="${people[0].name}" th:if="${people[0].age==25}"></p>
<p th:text="${people[0].name}" th:if="${people[0].age!=25}"></p>
- if문을 통해 true라면 해당 태그가 실행되고 false라면 실행이 되지 않는다.
switch
<p th:switch="${people[0].age}">
<span th:case="25" th:text="|${people[0].name}, ${people[0].department}|"></span>
</p>
- switch문을 통해 맞는 case에 대한 태그가 실행되도록 한다.
블록
<th:block>
<p>test</p>
</th:block>
- 블럭을 구성할 thymeleaf만의 태그이다.
참고문헌
https://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html
https://www.inflearn.com/course/스프링-mvc-2/dashboard
'스프링' 카테고리의 다른 글
[Spring, Thymeleaf] Form 심화 (0) | 2021.09.23 |
---|---|
[Spring, Thymeleaf] Form 기본 (0) | 2021.09.23 |
[Thymeleaf] 연산, 속성값 (0) | 2021.09.22 |
[Thymeleaf] 텍스트, spring EL, 객체, URL 링크, 리터럴 (0) | 2021.09.22 |
@RequestBody, @ResponseBody (0) | 2021.09.21 |