[Spring] Model

Whatever·2022년 2월 4일
0

Spring(스프링)

목록 보기
9/29

MODEL

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에서 공유된다.

* form의 요소들을 Controller로 전송받는 방법

1. Controller에서 @RequestParam을 이용해 Map으로 받는 방법

	@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;
	}

2. Controller에서 @ModelAttribute을 이용해 VO으로 받는 방법

@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";
	}
  • 꼭 스프링 form을 사용하지 않아도
    input타입 name값을 멤버변수와 동일하게 한다면 VO객체로 받을 수 있다.

0개의 댓글