본문 바로가기
Spring

[Spring] 06. ModelAndView의 정의

by ssunooo 2024. 10. 8.

 

 

 

ModelAndView의 정의

 

  • Spring MVC에서 사용되는 객체
  • 요청에 대한 응답을 구성할 때 모델 데이터와 뷰 정보를 함께 담고 있는 역할

 

ModelAndView의 기본 개념

  • 모델(Model): 클라이언트에게 표시할 데이터를 포함
  • 뷰(View): 클라이언트에게 어떻게 데이터를 표시할지를 정의
    ※ JSP, Thymeleaf, HTML 등 다양한 형식

ModelAndView의 구성 요소

 

 

  • 모델 (Model) : 키-값 쌍으로 데이터를 저장, 뷰에서 사용 가능
  • (View) : 클라이언트에게 어떤 뷰를 렌더링할지를 나타내는 문자열,
    Spring MVC는 적절한 ViewResolver를 사용하여 뷰를 찾음

 

ModelAndView의 주요 메서드

 

 

  • addObject(String attributeName, Object attributeValue) - 데이터 추가
  • setViewName(String viewName) - 뷰 이름 설정
  • getModel() - 모델 데이터 반환
  • getViewName() - 설정된 뷰 이름 반환

 

<활용 코드>

package com.koreait.app.view.member;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import com.koreait.app.biz.member.MemberDAO;
import com.koreait.app.biz.member.MemberDTO;

import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

public class LoginController implements Controller {
	@Autowired
	private MemberDAO memberDAO;

	@Override
	public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
		// 1. 사용자(클라이언트,브라우저)가 보낸 파라미터에서 값 추출
		String mid=request.getParameter("mid");
		String password=request.getParameter("password");

		// 2. DB 연동
		MemberDTO memberDTO=new MemberDTO();
		memberDTO.setMid(mid);
		memberDTO.setPassword(password);
		memberDTO = memberDAO.selectOne(memberDTO);

		// 3. 페이지 이동 == 네비게이션
		ModelAndView mav=new ModelAndView();
		mav.setViewName("login");
		if(memberDTO != null) {
			mav.addObject("userName", memberDTO.getName());
			mav.setViewName("main.do");
		}
		return mav;
	}
}

 

 

 

2024.10.08