원래 수업시간에는 Controller에서 Model을 사용했다.
@RequestMapping(value = "/board/boardView.wow")
public String boardView(Model model, int boNo) {
BoardVO board = service.getBoard(boNo);
model.addAttribute("board", board);
return "board/boardView";
}
Model을 사용할 때는 위의 코드와 같았다. addAttribute()를 사용해서 값을 넣어주고 String형태로 리턴한다.
하지만 Model만으로는 내가 원하는 형태를 구현할 수 없었다. 로그인 화면에 추가로 메세지를 보내고 싶은데 방법을 몰랐던 것! 그래서 방법을 찾다 ModelAndView를 알게 되었다.
@RequestMapping("join/memberRegist.wow")
public ModelAndView memberRegist(ModelAndView mav, @ModelAttribute("member") MemberVO member
, SessionStatus sessionStatus)
{
service.registMember(member); //처리할 내용
mav.setViewName("/login/login.wow"); //처리 후 응답할 view
mav.addObject("message", "joinsucess"); //저장할 값
sessionStatus.setComplete();
return mav;
}
ModelAndView는 ModelAndView 객체를 생성하고 이에 다양한 값을 담아 리턴한다.
위의 코드는 회원가입의 마지막 단계이다.
모든 값이 저장되어서 들어 오면 service.registMember를 이용하여 DB에 새로 가입한 회원의 정보를 INSERT 하였다.
그리고 setViewName()으로 로그인 화면으로 바로 넘어가도록 View를 지정한다.
그리고 마지막으로 addObject()으로 login 화면에 보낼 메세지를 저장하였다.

ModelAndView를 살펴보면 Model과 다르게 인터페이스가 아닌 클래스이고 model과 view 모두 저장할 수 있단걸 알 수 있다.
둘의 차이에 대해서는 좀 더 공부해봐야할 것 같다...
'SPRING' 카테고리의 다른 글
Spring 이중 등록 방지(double submit prevent) (0) | 2022.12.08 |
---|
댓글