스프링엘
Time Leap에서는 변수 표현식 ${…}(선택적 변수는 *{…})를 사용하여 변수를 사용합니다.
이 변수 표현식은 SpringEL이라는 Spring에서 제공하는 표현식을 사용할 수 있습니다.
스프링엘
Spring Expression Language를 의미하는 SpringEL(SpEL)은 런타임 메소드 호출 및 기본 문자열 템플릿과 같은 기능을 제공합니다.
#{“식”}, ${“속성”}.
(SpringEL 공식 문서 링크: https://docs.spring.io/spring-framework/docs/3.0.x/reference/expressions.html )
Thymeleaf 변수 표현식: ${…}
<span th:text="${data}">Text</span>
SpEL을 사용한 Thymeleaf 변수
SpEL(SpringEL)의 다양한 표현을 사용할 수 있습니다.
//서버쪽에서 아래와 같이 데이터가 넘어간다
@GetMapping("/variable")
public String variable(Model model) {
User userA = new User("userA", 10); //username , age
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); // Object(객체)로 전송
model.addAttribute("users", list); // List로 전송
model.addAttribute("userMap", map); // Map으로 전송
return "basic/variable";
}
위와 같이 SpringEL 표현식을 통해 Object, List, Map에서 데이터를 찾을 수 있습니다.
<!
-- Obejct -->
<span th:text="${user.username}"></span>
<span th:text="${user('username')}"></span>
<span th:text="${user.getUsername()}"></span>
<!
-- List -->
<span th:text="${users(0).username}"></span>
<span th:text="${users(0)('username')}"></span>
<span th:text="${users(0).getUsername()}"></span>
<!
-- Map -->
<span th:text="${userMap('userA').username}"></span>
<span th:text="${userMap('userA')('username')}"></span>
<span th:text="${userMap('userA').getUsername()}"></span>
• 목적
user.username : 사용자의 사용자 이름 속성에 접근(=user.getUsername( ))
user(‘username’) : 첫 번째 것과 동일한 속성에 액세스(=user.getUsername( ))
user.getUsername(): 사용자의 getUsername(), getter를 직접 호출
• 목록
users(0).username : 목록의 첫 번째 사용자 이름 속성에 액세스(=list.get(0).getUsername( ))
users(0)(‘username’) : 첫 번째와 동일한 속성에 액세스(=list.get(0).getUsername( ))
users(0).getUsername : List의 첫 번째 getter를 직접 호출합니다.
• 지도
userMap(‘userA’).username : Map에서 userA의 key 값의 username 속성에 접근(=map.get(“uesrA”).getUsername))
userMap(‘userA’)(‘username’) : 첫 번째 것과 동일한 속성에 액세스(=map.get(“uesrA”).getUsername))
userMap(‘userA’).getUsername() : Map에서 userA의 key 값의 getter를 직접 호출
원천: https://maenco./entry/Thymeleaf-Variable-Expression-%EB%B3%80%EC%88%98-%ED%91%9C%ED%98%84%EC%8B%9D
(Thymeleaf) 변수 표현식
(참고: 이 글은 Spring Boot를 기준으로 작성되었습니다.
) Time Leap에서는 ${…}라는 변수 표현식을 사용합니다.
(선택 변수는 *{…}입니다.
) 이 변수 표현식에서 a라는 이름의 spring은 스프링엘 제공
maenco.