dev/Spring

[Spring] Model

dev_Step 2022. 1. 20. 17:25

 

 

.JSP 에서 GET / POST 방식으로 요청을 하면 DispatcherServlet 에서 요청을 받아 

 RequestMappingHandlerMapping이  Controller 에서 @RequestMapping 를 찾아 요청한 

Controller로 보내 해당 메서드를 실행시킨다. 이때 매개변수에 VO가 선언되어 있을경우 보낸 데이터와

VO의 변수명이 일치 하면 자동으로 mapping된다.

 

Controller에서는 해당 데이터로 DB작업을 하거나, 작업할 요소가 없을경우 가공된데이터 또는 해당 데이터를

JSP로 데이터를 다시 전달해줄때 사용하는데 Model이라는 객체다. @ModelAttribute라는 어노테이션이 있는데 해당 어노테이션은 Controller로 전달받은 파라미터를 Model에 담아서 화면에 다시 사용해야 할 경우에 사용합니다. 

다음과같이 요청을 하고, Controller에서 매개변수로 SampleVO, page를 전달받고,

log에는 Page와 VO값이 둘다 확인되지만.

/sample/ex04 에서는 Page값이 나타나지 않는다. 이때 강제로 페이지 화면까지 넘어갈수 있도록 쓰는게 @ModelAttribute 어노테이션이다.

 

@ModelAttribute 를 통해서 .jsp에서 page로 넘긴 값을 ("여기와 동일하게 맞춰주면 된다.") 이렇게 받은 매개변수 int page는 화면에서 까지 사용할 수 있게된다.