반응형

  Controller의 메서드를 작성할 때는 특별하게 Model이라는 타입을 파라미터로 저장할 수 있습니다. Model 객체는 JSP에 컨트롤러에서 생성된 데이터를 담아서 전달하는 역할을 하는 존재입니다. 이르르 이용해서 JSP와 같은 뷰로 전달해야 하는 데이터를 담아서 보낼 수 있습니다. 메서드의 파라미터에 Model 타입이 지정된 경우에는 스프링은 특별하게 Model 타입의 객체를 만들어서 메서드에 주입하게 됩니다.

 

  Model은 모델 2방식에서 사용하는 request.setAttribute()와 유사한 역할을 합니다. Servlet을 이용해 본 적이 있다면 다음과 같은 코드에 익숙할 것입니다.

 

request.setAttribute("serverTime", new java.util.Date());

requestDispatcher dispatcher = request.getRequestDispatcher("WEB-INF/jsp/home.jsp");

dispatcher.forward(request, response);

 

위의 코드를 스프링에서는 Model을 이용해서 다음과 같이 처리하게 됩니다.

 

public String home(Model model){

	model.addAttribute("servletTime", new java.util.Date());
    
    return "home";
    
   }

 

  메서드의 파라미터를 Model 타입으로 선언하게 되면 자동으로 스프링 MVC에서 Model 타입의 객체를 만들어 주기 때문에 개발자의 입장에서는 필요한 데이터를 담아주는 작업만으로 모든 작업이 완료 됩니다. Model을 사용해야 하는 경우는 주로 Controller에 전달된 데이터를 이용해서 추가적인 데이터를 가져와야 하는 상황입니다.

 

  예를 들어, ,다음과 같은 경우들을 생각해 볼 수 있습니다.

- 리스트 페이지 번호를 파라미터로 전달받고, 실제 데이터를 View로 전달해야 하는 경우

- 파라미터들에 대한 처리 후 결과를 전달해야 하는 경우.

 

 

출처는 구멍가게 코딩단의 코드로 배우는 스프링 웹 프로젝트입니다.

반응형

'2020 > 주저리 주저리 타이핑.. 낙서장.' 카테고리의 다른 글

RedirectAttributes  (0) 2020.05.06
@ModelAttribute 어노테이션  (0) 2020.05.06
@DateTimeFormat  (0) 2020.05.06
@InitBinder  (0) 2020.04.29
낚서장.. 타이핑 연습?  (0) 2020.04.24
블로그 이미지

꽃꽂이하는개발자

,