일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- JSP
- Database
- HTTP
- 데이터포맷
- XML Core
- java annotation
- JavaScript
- 카카오APi
- 웹프로그래밍
- Servlet
- 세션
- 프로그래밍용어
- XML DOM
- Session
- JSTL
- Multipart
- xml
- java컴파일
- 반응형웹
- Java
- 공문서작성규정
- xml mapping
- 자바
- 데이터베이스
- Ajax
- 스프링프레임워크
- 데이터규정
- 데이터문서포맷
- Request/Response Header
- 자바스크립트
- Today
- Total
KyungHwan's etc.
스프링프레임워크 - ModelAndView 본문
스프링프레임워크는 MVC디자인 패턴을 이용하는 프레임워크이기 때문에 ModelAndView 객체를 바탕으로 컨트롤러에서 모델과 뷰 사이에 데이터를 쉽게 전송할수 있게 제공하고 있다.
ModelAndView
Controller 처리 결과 후 응답할 view와 view에 전달할 값을 저장
"/board/view") (
public String view(Model model) {
// 데이터만 설정이 가능
model.addAttribute("id", "hongku");
return "board/view";
}
생성자
- ModelAndView(String viewName) : 응답할 view 설정
- ModelAndView(String viewName, Map values) : 응답할 view와 view로 전달할 값들을 저장 한 Map 객체
- ModelAndView(String viewName, String name, Object value) : 응답할 view이름, view로 넘길 객체의 name-value
주요 메소드
- setViewName(String view) : 응답할 view이름을 설정
- addObject(String name, Object value) : view에 전달할 값을 설정 · requestScope에 설정됨
- addAllObject(Map values) : view에 전달할 값을 Map에 name-value로 저장하여
한번에 설정· requestScope에 설정됨
"/board/content") (
public ModelAndView content() {
// 데이터와 뷰를 동시에 설정이 가능
ModelAndView mv = new ModelAndView();
mv.setViewName("/board/content"); // 뷰의 이름
mv.addObject("data", "12341234"); // 뷰로 보낼 데이터 값
return mv;
}
Redirect 방식 전송
- view이름에 redirect: 접두어 붙인다.
mv.setViewName("/board/content");
View인 jsp도 똑같이 ${}를 이용한다.
Data : ${data}
2.ViewResolver
1.Controller가 넘긴 view 이름을 통해 알맞은 view를 찾는 역할
Controller는 ModelAndview 객체에 응달할 view이름을 넣어 리턴
DispachServlet은 ViewResolver에게 응답할 view를 요청한다
ViewResolver는 View 이름을 이용해 알맞은 view 객체를 찾아
DispatcherServlet에게 전달
2.ViewResovler - Spring 설정 파일에 등록한다.
3.InternalResourceViewResolver
- JSP나 HTML등의 내부 자원을 이용해 뷰 생성
- InternalResourceView를 기본 뷰로 사용
4.BeanNameViewResolver
- 뷰의 이름과 동일한 이름을 가지는 빈을 View로 사용
- 사용자 정의 View 객체를 사용하는 경우 주로 사용
5.XmlViewResolver
- BeanNameViewResolver와 동일 하나 뷰 객체를 xml 파일에 설정해 놓는 것이
차이.
- Bean 등록 시 location 프라퍼티에 xml 파일을 지정
Reference
'Java > 스프링프레임워크' 카테고리의 다른 글
AJAX를 이용한 비동기 파일업로드(View에서 컨트롤러로 데이터전송) (0) | 2018.06.21 |
---|---|
스프링프레임워크 - MVC Redirect 시 URI 에 붙는 파라미터 제거 하기 (0) | 2018.06.21 |
스프링프레임워크 - 디스패처(Dispatcher)가 뷰(View)를 찾는 방법 (0) | 2018.06.21 |
스프링프레임워크 - View에서 Parameter 값 받기(@RequestBody, HttpServletRequest request) (0) | 2018.06.21 |
스프링프레임워크(@RequestBody 와 @ResponseBody 및 AJAX & JSON 연동) (0) | 2018.06.12 |