본문 바로가기

Programming

ModelAndView에 대한 간단한 지식(Model 포함)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
 
 
 
import org.springframework.stereotype.Controller;
 
 
 
 
 
 
@Controller
 
public class TestModelAndView {
 
 
 
    @RequestMapping("models/model")
 
    public String testModel(Model model){
 
        
 
        model.addAttribute("name""홍길동");
 
        
 
        return "/models/model";
 
    }
 
    
 
    @RequestMapping("models/modelAndView")
 
    public ModelAndView testModelAndView(){
 
        ModelAndView mv = new ModelAndView();
 
        mv.addObject("name""강호동");
 
        mv.addObject("email""this@daum.net");
 
        mv.setViewName("/models/modelAndView");
 
        
 
        return mv;
 
    }
 
}

 

ModelAndView는 컴포넌트 즉 객체 방식으로 작성되고 돌려준다.

그래서 인자가 없으며 돌려주는 데이터형도 ModelAndView이다.

 

또한 ModelAndView 객체를 생성한다.

예) ModelAndView mv = new ModelAndView();

데이터 추가는 addObject(key, value)로 추가하며,

페이지 이동값은 setViewName로 페이지를 세팅한다.

 

return 값은 ModelAndViewe(위에는 mv)로 돌려준다.

 

추가적으로 Model과 ModelAndView의 구체적인 차이를 설명하자면

Model -> model.addAttribute를 사용하여 데이터만 저장

ModelAndView -> 데이터와 이동하고자 하는 View Page를 같이 저장

 

 

 

=> modelAndView.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
<%@ page language="java" contentType="text/html; charset=UTF-8"
 
    pageEncoding="UTF-8"%>
 
<!DOCTYPE html>
 
<html>
 
<head>
 
<meta charset="UTF-8">
 
<title>Insert title here</title>
 
</head>
 
<body>
 
<h2>ModelAndView 테스트</h2>
 
이름:${name}
 
이메일:${email}
 
</body>
 
</html>
 
 



참고 자료 

https://homesi.tistory.com/entry/Model-과-ModelAndView [세상의 이치로 바라본다]