주로 사용자의 요청을 처리(Model을 경유) 한 후 지정된 View에 모델 객체를 전달하는 역할
@Controller를 이용해서 클래스를 생성한다.@RequestMapping를 이용해, view의 요청 경로 지정한다.@Controller
public class TestController {
@RequestMapping("test1")
public ModelAndView abc() {
System.out.println("abc 처리");
return new ModelAndView("list", "msg", "나이스");
}
return new ModelAndView("list", "msg", "나이스");의 코드는
HttpServletRequest request = new HttpServletRequest();
request.setAttribute("msg", "나이스");
의 코드와 같은 뜻이다.
("list", "msg", "나이스"); 를 통해 list.jsp 파일에 key : msg , value : "나이스"가 들어가게 된다. 이때 view 파일의 경로는

다음과 같다.
이 list.jsp에서 값을 받을 때는 ${변수이름} 을 사용해주면 된다.
@PostMapping("test2")
public String abc2(Model model) {
model.addAttribute("msg", "post 요청 성공7");
return "list";
}
Model 방식은 메소드에 파라미터로 model을 넣어주고 String 형태로 반환한다.
이떄 model에 값을 넣을때는 addAttribute 메소드를 사용하며
결국 요청을 해주는 것이기 때문에 model은 request와 비슷하다고 생각된다.
public class TestController {
@RequestMapping("test1")
public ModelAndView abc() {
System.out.println("abc 처리");
return new ModelAndView("list", "msg", "나이스");
}
ModelAndVIew 방식은 ModelAndView 객체를 생성해서 객체 형태로 반환하며 말 그대로 Model + View의 개념이다.
하지만 과거에서 많이 사용하였지만 요즘 개발 트렌드에서는 ModelAndView를 잘 사용하지 않는다고 한다.