jsp의 modelAttribute와
Controller의 model.setAttribute는 밀접한 관련이 있다.
JSP의 modelAttribute가 Controller에서 정의가 되어있어야 한다.
jsp의 form의 input속성의 path가 VO의 멤버변수명과 동일하다.
Controller에서 setMemberId를 했을 때, JSP 페이지에서 해당 ID를 볼 수 있다.
기존의 ModelAndView는 Model의 영역과 View(JSP)의 영역을 함께 썼지만,
Model만 사용했을 때는 View가 아닌 Model(데이터)만 다루겠다는 의미이다.
Model은 request객체처럼 Controller와 JSP에서 공유된다.
@RequestMapping(value="/detail", method=RequestMethod.GET)
public ModelAndView detail(@RequestParam Map<String, Object> map) {
BookVO bookVO = new BookVO();
bookVO.setBookId(Integer.parseInt((String)map.get("bookId")));
bookVO = this.bookService.detail(bookVO);
ModelAndView mav = new ModelAndView();
mav.setViewName("book/detail");
return mav;
}
@RequestMapping(value="/member/insert", method=RequestMethod.POST)
public String insertPost(@ModelAttribute MemberVO memberVO) {
logger.info(memberVO.getMemberid());
logger.info(memberVO.getName());
logger.info(memberVO.getPassword());
logger.info(memberVO.getEmail());
return "member/result";
}