변수 - 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표현식은 다음과 같다.
먼저 Object부터 보자. user.getUsername이런거 할 필요없다. 스프링 EL은 자바빈 프로퍼티 규약을 준수하고 있기 때문에 user.username으로 필드에 접근가능하다.
물론 아래의 두가지 스타일로도 필드에 접근할 수 있다.
두번째 user['username']
스타일의 장점은 문자열을 직접 넣을 수 있다는 점이다. 동적으로 활용하기 좋음.
다음으로 List접근법이다. 이것도 다를게 없다. users[0]처럼 기존 list접근하는 것 처럼 접근하면 된다. 기존 EL과 다른게 없다.
map도 []
내부에 키만 넣어주면 value를 얻을 수 있다. 크게 다른게 없다.
JSP의 EL문법이랑 거의 같다.