변수 - SpringEL

학습 페이지

타임리프에서 변수를 사용할때는 변수 표현식 ${ }을 사용한다.

전에 배웠던 EL과 유사하다. 다만 스프링에서 사용가능한 추가적인 스프링 EL이 있다.

테스트용 핸들러를 만들자.

@GetMapping("/variable")
    public String variable(Model model){
        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); //user에는 userA를 담는다.
        model.addAttribute("users", list);
        model.addAttribute("userMap", map);

        return "basic/variable";
               
    }

EL표현식은 다음과 같다.

Untitled

먼저 Object부터 보자. user.getUsername이런거 할 필요없다. 스프링 EL은 자바빈 프로퍼티 규약을 준수하고 있기 때문에 user.username으로 필드에 접근가능하다.

물론 아래의 두가지 스타일로도 필드에 접근할 수 있다.

두번째 user['username'] 스타일의 장점은 문자열을 직접 넣을 수 있다는 점이다. 동적으로 활용하기 좋음.

다음으로 List접근법이다. 이것도 다를게 없다. users[0]처럼 기존 list접근하는 것 처럼 접근하면 된다. 기존 EL과 다른게 없다.

map도 []내부에 키만 넣어주면 value를 얻을 수 있다. 크게 다른게 없다.

JSP의 EL문법이랑 거의 같다.