반응형
💡 사용예시
1. Controller
- 화면으로 이동할 때는 기본적으로 Model이 있음
@Controller
@RequestMapping("/post")
@RequiredArgsConstructor
public class PostController {
private final PostService postService;
@GetMapping("/list")
public String list(Model model) {
List<Post> posts = postService.getPosts();
model.addAttribute("posts", posts);
return "post/list"; // "src/main/resources/templates/post/list.html"로 내부이동
}
}
2. html
<tr th:each="post: ${posts}">
사용- 데이터를 표현할 때 표현되는 방식을 조작하고 싶을 때는 # 사용
- Thymeleaf 표현식 유틸리티 객체를 사용하는 것
<tr th:each="post: ${posts}"> <!-- foreach, 반복 -->
<td th:text="${post.id}">1</td>
<td th:text="${post.title}">연습</td>
<td th:text="${post.user.name}">홍길동</td>
<td th:text="${#temporals.format(post.createdDate, 'yyyy-MM-dd')}">2024-03-20</td>
</tr>
✔️ 타임리프에서의 요청파라미터 작성 방법
- /post/detail(id=${post.id})
<td><a th:href="@{/post/detail(id=${post.id})}" th:text="${post.title}">연습</a></td>
📌 Thymeleaf 표현식 유틸리티 객체
1. #dates
- java.util.Date 객체에 대한 유용한 기능을 제공한다. (날짜에 대한 포맷팅)
- ex)
${#dates.format(post.createdDate, 'yyyy-MM-dd')}
2. #temporals
- java.time.LocalDate, java.time.LocalTime, java.time.LocalDateTime 등 java.time 패키지의 객체들에 대한 유용한 기능을 제공한다.
- ex)
${#temporals.format(post.createdDate, 'yyyy-MM-dd')}"
3. #strings
- java.lang.String 객체에 대한 유용한 기능을 제공한다.
- ex)
${#string.isEmpty(post.title)}
- ex)
${#string.length(post.title)}
- ex)
${#string.contains(post.title, '연습')}
- ex)
${#string.startsWith(post.title, '연습')}
- ex)
${#string.endsWith(post.title, '연습')}
- ex)
${#string.toUpperCase(post.title)}
- ex)
${#string.toLowerCase(post.title)}
- ex)
${#string.equals(post.title, '연습')}
4. #lists
- java.util.List 객체에 대한 유용한 기능을 제공한다.
- ex)
${#lists.isEmpty(posts)}
- ex)
${#lists.size(posts)}
5. #sets
- java.util.Set 객체에 대한 유용한 기능을 제공한다.
- ex)
${#sets.isEmpty(posts)}
- ex)
${#sets.size(posts)}
6. #maps
- java.util.Map 객체에 대한 유용한 기능을 제공한다.
- ex)
${#maps.isEmpty(posts)}
- ex)
${#maps.size(posts)}
- ex)
${#maps.containsKey(posts, key)}
< 해당 글은 velog에서 이전하며 옮겨온 글로, 가독성이 좋지 않을 수 있는 점 양해 부탁드립니다. >
🔗 velog 버전 보기 : https://velog.io/@ryuneng2/Spring-Thymeleaf-표현식-유틸리티-객체
'BackEnd > Spring' 카테고리의 다른 글
[Spring] form태그 하나로 등록, 수정 함께 컨트롤하기 (0) | 2025.01.19 |
---|---|
[Spring JPA] Spring Data JPA의 페이징 처리 (0) | 2025.01.19 |
[Spring] Spring Data JPA 설정 - 정의한 JPA Entity 클래스로 테이블 자동 생성되도록 설정하기 (1) | 2025.01.18 |
[Spring] Spring Data JPA 연관관계 어노테이션 @ManyToOne (0) | 2025.01.18 |
[Spring] Optional 처리 (0) | 2025.01.18 |