스프링엘

스프링엘

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.