스프링/4. 스프링 MVC-2

2. 변수

sdafdq 2023. 8. 21. 22:43
@Data
static class User{
    private String username;
    private int age;

    public User(String username, int age){
        this.username = username;
        this.age = age;
    }
}

 

 

@GetMapping("/variable")
public String variable(Model model){
    User user1 = new User("userA", 23);
    User user2 = new User("userB", 24);

    List<User> users = new ArrayList<User>();
    users.add(user1);
    users.add(user2);

    Map<String, User> map = new HashMap<>();
    map.put("userA", user1);
    map.put("userB", user2);

    model.addAttribute("user",user1);
    model.addAttribute("users",users);
    model.addAttribute("userMap",map);
    return "basic/variable";
}

User를 생성하고, 그대로 모델에 넣거나, 리스트에 넣은 다음에 넣거나, Map에 넣은 다음에 넣거나.

 

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>SpringEL 표현식</h1>
<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>
</body>
</html>

user, users, userMap은 key 이름임. 위 자바코드 보면 직접 넣음.

 

user.username 이거는 프로퍼티 접근법으로, 사실 상 user.getUsername()을 호출하는거임.

두번째도 마찬가지고,

세번째는 직접적으로 함수 쓰는거임.

 

리스트는

key[idx] 이렇게

 

맵은

key['key'] 이렇게. 첫번째 키는 모델에 넣을 때 키고, 두번째 키는 이 맵에 넣을 때 키임.

 

 

 

 

<h1>지역변수 - (th:with)</h1>
<div th:with="first=${users[0]}">
    <p>처음 사람의 이름은 <span th:text="${first.username}"></span></p>
</div>

이렇게 잠깐 지역변수로 지정해서 쓸 수 도 있음.

th:with="변수이름=${데이터(모델에 담은 키)}"

 

 

참고로 저 th기술들의 스코프는 그 태그 안쪽임.

 

 

'스프링 > 4. 스프링 MVC-2' 카테고리의 다른 글

6. thymeleaf 리터럴  (0) 2023.08.22
5. thymeleaf url  (0) 2023.08.21
4. 유틸 객체, 시간표현  (0) 2023.08.21
3. thymeleaf 기본 제공되는 객체  (0) 2023.08.21
1. 타임리프 text escaped, unescaped  (0) 2023.08.16