2021. 6. 16. 19:42ㆍSpring
저번 포스팅에서는, view 에서 컨트롤러로 parameter 전달하는 것을 알아 봤었죠?
이번에는, 컨트롤러에서 view 로 parameter 전달하는 것을 알아 봅시다
컨트롤러 -> view
컨트롤러에서 view 로 매개변수를 전달하는 방법은 4가지가 있습니다.
1. Model 객체 이용하기.
처음에, 컨트롤러를 경유할 때, 컨트롤러의 메서드에 Model 객체를 사용 합니다.
addAttribute( key, value ) 를 사용 합니다.
view 화면에서는, EL 표기법을 사용해서 key 를 사용 합니다.
2. ModelAndView 객체 이용하기
ModelAndView 객체는, parameter 를 저장하기도 하고, view 의 정보를 저장하기도 합니다.
반환 타입을 ModelAndView 로 사용합니다.
변수의 저장은 addObject( 키, 값)
뷰의 저장은 setViewName("경로")
를 사용합니다.
view 에서는 똑같이 EL 표기법을 사용해서 꺼냅니다.
3. @ModelAttribute 어노테이션 이용하기
@ModelAttribute 는 어노테이션의 일종으로, 메서드의 매개변수에 자리 합니다.
@ModelAttribute 는 넘어오는 parameter 를 그대로 view 에 보냅니다.
@ModelAttribute("키") 변수타입 변수명 으로 사용합니다.
여기서 키는, view 로 넘어가는 키 입니다.
String a 는 컨트롤러에서 사용할 변수 입니다. key에 해당하는 값이 a 에 들어 갑니다.
view 에서는, EL 표기법을 사용해서 꺼냅니다.
@ModelAttribute 는 단일 값만 받고, 넘기고 할 수 있는데, 여러개의 값을 넘기고 싶다면, VO 객체 ( 여러개의 멤버변수를 가진 ) 를 만들어서 사용 합니다.
view 에서는 , 키값인 "info" 에 . 을 찍어서 EL 표기법으로 사용합니다.
4. RedirectAttributes 객체 이용하기
RedirectAttributes 는 , redirect 방법으로 view 를 이동할 때, 매개변수를 단 1번만 저장하는 방법 입니다.
Spring은 mvc2 구조의 framework 를 가지고 있기 때문에, 기본적으로 forward 형식으로 view 를 넘어가게 됩니다
forward 의 특징은, 특정 객체들을 가지고 간다는 것. url주소를 페이지 이동 전인 채로 유지된다 라는 점이 있습니다.
그런데, redirect 로 페이지를 이동하게 되면, forward 에서의 특정객체들을 초기화 시켜버리기 때문에, 위의 1~3 번 방법은 사용할 수 없습니다.
그렇기 때문에, 따로 RedirectAttribute 객체가 존재 합니다.
보통, redirect 는 컨트롤러 -> 컨트롤러 로 이동할 때 사용하게 되고, 이동할 경로 앞에 "redirect:/" 를 붙입니다.
redirect 시에 parameter 를 저장하고 싶다면, RedirectAttributes 객체의 addFlashAttribute 를 사용하면 됩니다.
이는 단 1번만 저장이 됩니다 ( 다음 페이지에서만 사용 가능 )
view 에서는 EL 표기법으로 사용합니다.
예제.
'Spring' 카테고리의 다른 글
Day86 - [Spring]Spring Tool Suite 3 다운로드 (0) | 2021.06.18 |
---|---|
Day85 - [Spring]Service, Model 부분 만들기 (0) | 2021.06.16 |
Day84 - [Spring]컨트롤러 객체의 구현 (0) | 2021.06.16 |
Day84 - [Spring]개발환경 구축(Spring 프로젝트 생성) (0) | 2021.06.15 |
Day83 - [Spring]mvc 구조 이해하기 (0) | 2021.06.15 |