Spring MVC : Controller, Model, ModelAndView

까만호랭·2023년 9월 7일

스프링 MVC 컨트롤러 (Controller)

주로 사용자의 요청을 처리(Model을 경유) 한 후 지정된 View에 모델 객체를 전달하는 역할

컨트롤러 클래스 제작 순서

  1. @Controller를 이용해서 클래스를 생성한다.
  2. @RequestMapping를 이용해, view의 요청 경로 지정한다.
  3. 요청 처리 메소드(로직)을 구현한다.
  4. 뷰 이름을 리턴한다.
@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에서 값을 받을 때는 ${변수이름} 을 사용해주면 된다.

Model 방식

@PostMapping("test2")
	public String abc2(Model model) {  
		model.addAttribute("msg", "post 요청 성공7");
		return "list"; 
	}

Model 방식은 메소드에 파라미터로 model을 넣어주고 String 형태로 반환한다.
이떄 model에 값을 넣을때는 addAttribute 메소드를 사용하며
결국 요청을 해주는 것이기 때문에 modelrequest와 비슷하다고 생각된다.

ModelAndView 방식

public class TestController {  
	@RequestMapping("test1")  
	public ModelAndView abc() {
		System.out.println("abc 처리");
		return new ModelAndView("list", "msg", "나이스"); 
	}

ModelAndVIew 방식은 ModelAndView 객체를 생성해서 객체 형태로 반환하며 말 그대로 Model + View의 개념이다.
하지만 과거에서 많이 사용하였지만 요즘 개발 트렌드에서는 ModelAndView를 잘 사용하지 않는다고 한다.

profile
남들과 함께 발자국을 남기는 까만호랭

0개의 댓글