반응형
타임리프에서 변수를 사용할 때는 변수 표현식을 사용하는데 이 표현식에는 SpringEL이라는 스프링이 제공하는 표현식을 사용할 수 있다.
변수 표현식은 ${,,,}이런 것을 말 한다.
@Data
static class User {
private String username;
public int age;
public User(String username, int age) {
this.username = username;
this.age = age;
}
}
클래스를 따로 만들어 username, age를 파라미터로 갖는 생성자를 하나 만들어 주고 @Data 어노테이션을 사용해 주었다.
User userA = new User("UserA", 10);
User userB = new User("UserB", 20);
생성자를 통해 인스턴스를 생성해 주고
List<User> list = new ArrayList<>();
list.add(userA);
list.add(userB);
Map<String, User> map = new HashMap<>();
map.put("userA", userA);
map.put("userB", userB);
model.addAttribute("user", userA);
model.addAttribute("users", list);
model.addAttribute("userMap", map);
list와 map, model에 값을 넣어줬다.
<ul>Object
<li>${user.username} = <span th:text="${user.username}"></span></li>
<li>${user['username']} = <span th:text="${user['username']}"></span></li>
<li>${user.getUsername()} = <span th:text="${user.getUsername()}"></span></li>
</ul>
<ul>List
<li>${users[0].username} = <span th:text="${users[0].username}"></span></li>
<li>${users[0]['username']} = <span th:text="${users[0]['username']}"></span></li>
<li>${users[0].getUsername()} = <span th:text="${users[0].getUsername()}"></span></li>
</ul>
<ul>Map
<li>${userMap['userA'].username} = <span th:text="${userMap['userA'].username}"></span></li>
<li>${userMap['userA']['username']} = <span th:text="${userMap['userA']['username']}"></span></li>
<li>${userMap['userA'].getUsername()} = <span th:text="${userMap['userA'].getUsername()}"></span></li>
</ul>
html에서 각 값을 출력해 주었는데 여러 방법으로 데이터를 출력할 수 있다.
두번째 방법 ${user['username']} 같은 경우에는 문자를 넣어 사용할 수 있어 동적 페이지를 만들 때 유리하다고 한다.
이 외에 지역변수 선언에 대해서도 공부했다.
<div th:with="first=${users[0]}">
<p>처음 사람의 이름은 <span th:text="${first.username}"></span></p>
첫 라인에서 first에 user[0]리스트에 있는 값을 담아줬다. 이러면 first가 유저 객체가 되고 아래서 그대로 불러서 사용할 수 있게 되는 것이다.
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 참고하여 공부하였습니다.
반응형
'Framework & Library > Spring Boot' 카테고리의 다른 글
[Spring Boot] : 타임리프 - 유틸리티 객체와 Java8 날짜 (0) | 2022.02.04 |
---|---|
[Spring Boot] : 타임리프가 제공하는 기본객체, 편의객체 (0) | 2022.02.04 |
[Spring Boot] : 타임리프 - Escape, Unescape (0) | 2022.02.04 |
[Spring Boot] : 타임리프, thymeleaf 소개 (0) | 2022.02.04 |
[Spring Boot] : RedirectAttributes 사용하기 (0) | 2022.02.03 |
댓글