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
'Spring' 카테고리의 다른 글
| [Spring] 07-2. 어노테이션의 종류(@Repository, @Service) (1) | 2024.10.10 |
|---|---|
| [Spring] 07-1. 어노테이션의 종류(@RequestMapping,@Controller) (0) | 2024.10.10 |
| [Spring] 05. 어노테이션 의존성 주입 (1) | 2024.10.04 |
| [Spring] 04. 의존성 주입 (0) | 2024.10.02 |
| [Spring] 03. Spring 컨테이너의 활용 (3) | 2024.10.01 |