반응형
Spring MVC를 이용하는 경우 작성되는 Controller에서는
HttpServletRequest, HttpServletResponse를 거의 사용하지 않고
필요한 기능을 구현할 수 있음
Model
Model은 컨트롤러에서 생성된 데이터를 담아 JSP로 전달하는 역할을 함
Controller에서 메서드를 작성 시, Model 타입을 파라미터로 지정하면 스프링은 Model 타입의 객체를 생성해 메서드에 주입
→ MVC2에서의 request.setAttribute()
와 비슷
// MVC2
public class UserJoinService implements UserService{
@Override
public void execute(HttpServletRequest request, HttpServletResponse response){
request.setAttribute("userId", userId);
RequestDispatcher dp = request.getRequestDispatcher("jsp파일 경로/파일명.jsp");
dp.forward(request, response);
}
}
// spring
public String userJoin(Model model){
model.addAttribute("userId", userId);
return "jsp파일명";
}
주로 Controller에 전달된 데이터를 이용해 추가적인 데이터를 가져와야 할 경우 사용
RedirectAttributes
RedirectAttributes는 데이터를 가져와 해당 JSP에서 한번 사용하고 더이상 사용되지 않는 데이터를 전달
Model 타입과 같이 파라미터로 선언하며 addFlashAttribute("이름", 값)
메서드를 이용
→ MVC2에서의 response.sendRedirect()
와 비슷
// MVC2
response.sendRedirect("/board/detail?title=test&writer=test");
// spring
public String detail(RedirectAttributes rttr){
rttr.addFlashAttribute("title", "test");
rttr.addFlashAttribute("writer", "test");
return "redirect:/board/detail";
}
'Spring' 카테고리의 다른 글
[Spring] 페이징 처리를 위한 공식(시작 페이지와 끝 페이지) (0) | 2021.09.25 |
---|---|
[Spring] 게시판 페이징(Paging) 처리 (0) | 2021.09.24 |
[Spring] MyBatis 라이브러리 세팅 (0) | 2021.09.19 |
[Spring] MyBatis에서 selectkey 사용 (0) | 2021.09.18 |
[Spring] Mapper 인터페이스와 Mapper.xml (0) | 2021.09.14 |