개발자 '쑥말고인절미'
[Spring] Model 객체와 ModelAndView 객체 차이 본문
간단 정리
- Model 객체는 데이터만 넘겨줄 수 있다면 ModelAndView 객체를 이용하면 view경로와 데이터를 한번에 넘겨줄 수 있다.
- ModelAndView 객체는 Model 객체보다 기능이 더 많아 구현할 내용이 복잡해질수록 ModelAndView 객체를 사용하는게 더 편할 것 같다.
Model 객체
- model.addAttribute()를 이용해 넘길 데이터의 이름과 값을 입력하고 그 값을 view로 넘긴다.
//Controller(.java파일)
@RequestMapping("/view경로")
public String 메소드명(Model model) {
model.addAttribute("변수이름", "변수에 입력할 데이터 값");
return "view경로";
}
//view(.jsp파일)
<html>
...
<body>
넘겨받은 데이터는 ${변수이름} 입니다.
</body>
</html>
- Model에 속성을 추가하는 addAttribute() 이외에도 아래와 같은 메소드 등이 있다.
- getAttribute() : Model에 있는 속성을 조회
- addAttributes() : Model에 속성을 여러 개 추가
- getAttributes() : Model에 속성을 여러 개 추가
- constainsAttributes() : Model에 특정한 속성이 있는지 확인
- mergeAttributes() : Model 두 개를 합침
ModelAndView
- mav.setViewName()를 이용해 뷰 경로를 설정한다.
- mav.addObject()를 이용해 데이터를 보낼 수 있다.
//Controller(.java파일)
@RequestMapping("/view경로")
public ModelAndView 메소드명(ModelAndView mav) {
mav.setViewName("view경로");
mav.addObject("변수이름", "변수에 입력할 데이터 값");
return mav;
}
//view(.jsp파일)
<html>
...
<body>
넘겨받은 데이터는 ${변수이름} 입니다.
</body>
</html>
- Model이 속성을 추가 삭제하는 기능만 있다면 ModelAndView은 view설정, model설정, 상태 설정, 기타 기능까지 다양하다. 아래에 서술한 메소드 외에도 더 많이 있다.
- getViewName() : view 이름을 조회
- setView() : view 설정
- getView() : view 조회
- hasView() : 설정되어 있는 view가 있는지 확인
- getModelMap() : 내부의 모델 Map 조회
- getModel() : 내부 모델 조회
- getStatus() : 상태 설정
참고링크
https://hongku.tistory.com/116
SpringMVC :: 컨트롤러(Controller), Model, ModelAndView 사용법
스프링 MVC 컨트롤러 (Controller) 기본적인 흐름은 client가 요청을 하면, @Controller에 진입한다. 컨트롤러는 요청에 대한 작업을 수행하고, 뷰쪽으로 데이터를 전달한다. 컨트롤러 클래스 제작 순서 @C
hongku.tistory.com
https://bestkingit.tistory.com/155
'STUDY > Spring & SpringBoot' 카테고리의 다른 글
[Spring] 전자정부 표준프레임워크란? (0) | 2022.12.13 |
---|---|
[Spring] Model과 ModelAndView 차이 참고링크 (0) | 2022.12.01 |
[Spring] Mapper.java와 Mapper.xml 설명 참고링크 (0) | 2022.11.29 |
[Spring] maven, pom.xml에 대하여 (0) | 2022.11.26 |
스프링 및 스프링 부트 어노테이션 정리(1) (0) | 2022.11.19 |