지난 시간에 만들었던 게시판 리스트에
[list.jsp]
//회원 삭제 요청 처리
@RequestMapping("/member/delete")
public String delete(int num) {
dao.delete(num);
//목록보기로 리다이렉트 응답
return "redirect:/member/list";
}
//회원 수정 요청 처리
@RequestMapping(method = RequestMethod.POST, value="/member/update")
public String update(MemberDto dto) {
dao.update(dto);
return "member/update";
}
//회원 수정폼 요청 처리
@RequestMapping("/member/updateform")
public ModelAndView updateform(ModelAndView mView, int num) {
//수정할 회원의 정보를 얻어온다.
MemberDto dto = dao.getData(num);
mView.addObject("dto", dto);
//view page의 위치도 ModelAndView 객체에 담아서 리턴해야한다.
mView.setViewName("member/updateform");
//모델(data)와 view page의 정보가 모두 담긴 ModelAndView객체를 리턴해주면
//spring이 알아서 처리 해준다.
return mView;
}
일반적으로 컨트롤러는 클라이언트의 요청을 처리하고 데이터를 준비한 후 , 이 데이터를 어떤 뷰에 전달하여 클라이언트에게 응답을 생성한다.
ModelAndView 는 데이터와 뷰에 대한 정보를 한 곳에서 관리할 수 있도록 도와준다.
데이터를 model
에 추가하고 ModelAndView 객체를 선언 및 생성한다.
mView.setViewName("뷰의 경로"); mView.addObject("변수이름", 데이터값);
수정할 회원의 정보를 ModelAndView 객체의 addObject(key, value)메소드를 이용해서 담는다.
ModelAndView 객체에 담은 값은 결국 HttpServletRequest 객체에 담긴다 (request scope 에 담긴다)
그리고 ModelAndView 객체를 반환한다.