728x90
반응형
SMALL
안녕하세요.
https://blog.naver.com/sysysy0302 여니입니다 :)
< 요청 처리 후 "응답 데이터를 담고" 응답페이지로 url재요청 하는 방법 >
+ 스프링 Model과 ModelAndView 차이점 및 개념
1) Model 객체 이용
포워딩할 응답뷰로 전달하고자 하는 데이터를 맵형식으로 담을 수 있는 객체
(Model객체는 requestScope를 가지고 있음) -> request, session을 대신하는 객체
- 기본 scope : request이고, session scope로 변환하고 싶은 경우 클래스 위에 @SessionAttribute를
작성하면 된다. model 안에 데이터를 추가하는 함수 : addAttribute()
2) ModelAndView 객체 이용
// session scope는 안담겨서 session scope를 이용하고 싶으면 Model객체를 사용해야한다.
ModelAndView에서 Model은 데이터를 담을수 있는 key=value형태의 객체 (위 Model과 동일)
View는 이동하고자하는 페이지에 대한 정보를 담고있는 객체.
합쳐서 ModelAndView mv에 model에 데이터를 추가하는 함수
mv.addObject(key,value) mv에 view에 데이터를 추가하는 함수 (mv = ModelAndView)
mv.setViewName("이동할페이지")
-> Model로 데이터를 전달하든, ModelAndView로 데이터를 전달하든
결국은 ModelAndView로 통합되서 Spring container에 의해 관리된다.
1. Model 객체 이용 포워딩할 응답뷰로 전달하고자 하는 데이터를 맵형식으로 담을 수 있는 객체입니다.
(Model객체는 requestScope를 가지고 있음)
-> request, session을 대신하는 객체
2. 기본 scope는 request이고, session scope로 변환하고 싶은 경우 클래스 위에 @SessionAttribute를
작성하면 됩니다.
3. model 안에 데이터를 추가하는 함수 : addAttribute()
4. ModelAndView에서 Model은 데이터를 담을수 있는 key=value형태의 객체(위 Model과 동일)
View는 이동하고자하는 페이지에 대한 정보를 담고있는 객체. 합쳐서 ModelAndView mv에 model에 데이터를
추가하는 함수
<예시>
@RequestMapping(value = "login.me" , method = RequestMethod.POST)
public ModelAndView loginMember( //; ModelAndView 쓸때는 반환형 ModelAndView로 변경해주기
@ModelAttribute Member m , HttpSession session, Model model, ModelAndView mv ) {
//; 로그인하기 위해 로그인 정보를 담은 session객체
model.addAttribute("errorMsg","오류발생"); //; 기본값으로 request를 갖고 있다.
mv.addObject("errorMsg", "modelAndView 테스트");
mv.setViewName("common/errorPage");
System.out.println("userId : "+m.getUserId() );
System.out.println("userPwd : "+m.getUserPwd());
return mv;
}
< model.addAttribute("errorMsg","오류발생"); 코드의 화면 출력 모습>
< mv.addObject("errorMsg", "modelAndView 테스트"); 코드의 화면 출력 모습>
결과적으로 두 가지 코드가 화면에 출력된 결과는 같습니다.
작동원리상 Model과 ModelAndView은 같은데, 대체로 Model을 더 많이 사용합니다.
728x90
반응형
LIST
'⋆ 。゜☁︎ 。⋆ 。゜☾゜。⋆⋆ 。゜☁︎ 。⋆ 。゜☾゜。⋆ > Spring' 카테고리의 다른 글
[Spring] 스프링에서 parameter(요청시 전달값)을 받는 방법 - 로그인 기능 (1) | 2023.08.13 |
---|---|
[spring] spring scheduler 스프링 스케줄러란? (스프링 스케줄러 작업순서) (0) | 2023.08.09 |
[Spring] 스프링에서 parameter(요청시 전달값)을 받는 방법(@RequestParam, @ModelAttribute) + 필드, 생성자, 수정자 주입방식 개념 (0) | 2023.08.03 |
[Spring] 스프링 빈(bean)이란? (0) | 2023.08.03 |
[Spring] lombok이란? (0) | 2023.08.02 |