spring

[ Spring ] 스프링 model.addAttribute() 메소드

괴발새발개발자 2021. 11. 22. 22:45

: @RequestMapping이 부여된 메서드들은 view를 생성하는역할, 즉 Controller메서드.
: Controller는 Model을 이용해 데이터를 갖고오고, view에 데이터를 넘겨 적절한 view를 생성하는 역할.


< Controller에서 사용자에게 응답할 View를 생성할 때 Model을 이용하여 View에 데이터를 전달하는 방법 >

1. model.addAttribute(String name, Object value) ;

: value 객체를 name 이름으로 추가함.
: 뷰 코드에서는 name으로 지정한 이름을 통해서 value를 사용함.

@Controller
public class HomeController{

	@RequestMapping("/")
    public String home(Model model){
    	model.addAttribute("key", "home value");
        return "home";
    }
    
    @RequestMapping("/login")
    public String login(Model model){
    	model.addAttribute("key", "login value");
        return "login";
    }
}

매개변수로 전달받은 model.addAttribute("key", "value"); 메소드를 이용해서 view에 전달할 데이터를 key, value 쌍으로 전달함.

<html>
<head>
<title></title>
</head>
  <body>
      <%= request.getAttribute("value")%>
  </body>
</html>

view(jsp) 에서 getAttribute("key") 메소드를 이용해서 해당 값 활용 가능함.

<html>
<head>
<title></title>
</head>
  <body>
      <h1>
      	key is ${key}
        //home.jsp 에서는 key 값 = home value
        //login.jsp 에서는 key 값 = login value
      </h1>
  </body>
</html>

view(jsp) 에서 ${} 를 이용해서 해당 값 활용 가능함.

 

2. Model addAttribute(Object value);

: value를 추가함. value의 패키지 이름을 제외한 단순 클래스 이름을 모델 이름으로 사용함. 
: value가 배열이거나 컬렉션인 경우 첫 번째 원소의 클래스 이름 뒤에 "List"를 붙인 걸 모델 이름으로 사용함. 

 

<출처>

https://galid1.tistory.com/504

 

Spring - Model을 이용하여 View에 데이터 넘겨주기 - 6

Spring MVC Model을 이용한 View생성과 응답 앞선 포스팅에서 알아보았듯이 @Controller 클래스 안의 @RequestMapping 어노테이션이 부여된 method들은 사용자에게 응답할 View 를 생성하는 역할을 하는 즉, Contr.

galid1.tistory.com