1. 개요
Thymeleaf 는 XML, XHTML 및 HTML5 문서를 처리하기위한 다목적 Java 템플릿 엔진입니다 .
이 빠른 사용방법(예제)에서는 라이브러리에서 제공하는 몇 가지 다른 기능과 함께 Thymeleaf로 반복을 수행하는 방법을 살펴 보겠습니다.
Thymeleaf에 대한 자세한 내용은 여기 에서 소개 기사를 참조 하십시오 .
2. Maven 의존성
이 예제를 생성하기 위해 Thymeleaf 라이브러리와 함께 Spring Framework 라이브러리를 사용할 것입니다.
여기에서 의존성 ( thymeleaf 및 thymeleaf-spring )을 볼 수 있습니다 .
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf</artifactId>
<version>3.0.11.RELEASE</version>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
<version>3.0.11.RELEASE</version>
</dependency>
3. 예제 설정
뷰 레이어로 이동하기 전에 예제를위한 MVC 구조를 만들어 보겠습니다.
모델 레이어의 스 니펫 코드로 시작 :
public class Student implements Serializable {
private Integer id;
private String name;
// standard contructors, getters, and setters
}
모델을로드하고 뷰 레이어로 반환하는 컨트롤러 메서드도 제공합니다.
@GetMapping("/listStudents")
public String listStudent(Model model) {
model.addAttribute("students", StudentUtils.buildStudents());
return "listStudents.html";
}
위의 샘플에서 buildStudents () 메서드는 단순히 Student 객체 List을 반환 한 다음 모델에 추가합니다 .
4. 번째 각 속성
Thymeleaf에서 반복은 th : each 속성 을 사용하여 수행됩니다 .
이 속성에 대한 흥미로운 것 중 하나는이다 그것을 어떤 다른 데이터 유형을 반복을 받아 들일 것 , 예를 들면 :
- java.util.Iterable을 구현하는 객체
- java.util.Map을 구현하는 객체
- 배열
- 다른 개체는 하나의 요소를 포함하는 단일 값 List 인 것처럼 처리됩니다.
이제 위의 예제에서 설정 한 데이터로 th : each 속성 을 호출 해 보겠습니다 .
<tr th:each="student: ${students}">
<td th:text="${student.id}" />
<td th:text="${student.name}" />
</tr>
코드 스 니펫은 학생 List을 반복 하는 th : each를 보여줍니다 . 모델 속성은 $ {} 표기법을 사용하여 액세스 되며 List의 각 요소는 학생 변수 를 통해 루프 본문에 전달됩니다 .
5. 상태 변수
Thymeleaf는 또한 상태 변수를 통해 반복 프로세스를 추적하는 유용한 메커니즘을 활성화합니다 .
상태 변수는 다음 속성을 제공합니다.
- index : 0 (영)으로 시작하는 현재 반복 인덱스
- count : 지금까지 처리 된 요소의 수
- size : List의 총 요소 수
- even / odd : 현재 반복 인덱스가 짝수인지 홀수인지 확인합니다.
- first : 현재 반복이 첫 번째 반복인지 확인합니다.
- last : 현재 반복이 마지막 반복인지 확인합니다.
이 예에서 상태 변수가 어떻게 작동하는지 살펴 보겠습니다.
<tr
th:each="student, iStat : ${students}"
th:style="${iStat.odd}? 'font-weight: bold;'"
th:alt-title="${iStat.even}? 'even' : 'odd'">
<td th:text="${student.id}" />
<td th:text="${student.name}" />
</tr>
여기에 iStat.odd 속성을 포함하여 조건을 평가하고 현재 행에 굵은 스타일을 설정했습니다. 다음 평가에서도 동일하게 수행되지만 이번에는 iStat.even 을 사용하여 alt / title HTML 속성을 통해 값을 인쇄합니다.
경우에 우리는 (로 표시 상태 변수의 명시 적 창조 생략 iStat 우리의 예에서)을, 우리는 단순히 사용하여 우리의 상태 변수를 호출 할 수 studentStat , 변수의 집합입니다 학생 접미사와 통계를.
6. 결론
이 기사에서는 Thymeleaf 라이브러리에서 제공하는 많은 기능 중 하나를 살펴 보았습니다.
기본 속성 과 함께 th : each 속성을 사용하여 Thymeleaf에서 반복을 표시했습니다 .
이 문서에 표시된 코드의 작동 버전은 GitHub 저장소 에서 사용할 수 있습니다 .
- https://docs.spring.io/spring-framework/docs/current/reference/html
- https://www.baeldung.com/thymeleaf-iteration
'Java' 카테고리의 다른 글
Thymeleaf에서 조각 작업 (0) | 2021.04.07 |
---|---|
Thymeleaf의 조건문 (0) | 2021.04.06 |
List에 대한 Thymeleaf 페이지 매김이있는 Spring (0) | 2021.04.06 |
Thymeleaf에서 열거 형 작업 (0) | 2021.04.06 |
Spring Boot에서 Thymeleaf 템플릿 디렉토리 변경 (0) | 2021.04.06 |