-
RedirectAttributesSpring/Spring MVC 2020. 6. 22. 01:54
- 일반적으로 redirect 할 때 어떤 데이터를 모델에 넣는다면
- 모델에 들어있는 데이터 중 primitive 타입은 자동으로 URI path에
- 쿼리 파라미터로 추가가 되게 된다.
- 예를 들어 hello에 Id가 1이고 Name이 Baek이라면
- return 값은 "redirect:/hello/list? id=1&name=Baek" 이 되게 되지만
- 이러한 설정은 스프링 부트에서는 기본적으로 꺼져있다.
- 다음과 같이 설정을 해주게 되면
- 이제 모델에 들어있던 primitive 타입들이 자동으로 쿼리 파라미터로 붙게 된다.
- 이렇게 되면 redirect 되는 주소 쪽에서 @RequestParam, @ModelAttribute 를 통해 해당 값들을 받을 수가 있다.
이때 모델에 들어있는 모든 데이터가 아닌 일부만 명시적으로 보내고 싶다면?
1. application.properties에 설정을 제거한다.
2. model 대신 RedirectAttributes를 사용한다.
- redirectAttribute를 이용하면 properties 설정 없이도
- 우리가 명시한 name 데이터만 쿼리 파라미터를 통해 붙게 된다.
- 이제 해당 데이터를 RequestParam으로 받아서 화면으로 띄워보자.
- 다음과 같이 ModelAttribute를 통해 쿼리 파라미터에 데이터를
- Hello 객체에 바인딩해서 사용할 수도 있다.
- newHello로 네임을 따로 준 이유는 저번에 SessionAttributes 사용으로 먼저 만료된 세션을 찾기 때문이다.
'Spring > Spring MVC' 카테고리의 다른 글
@SessionAttributes (0) 2020.06.16 @ModelAttribute과 BindingResult (0) 2020.06.11 요청 매개변수를 메소드 아규먼트로 받아오는 방법 (0) 2020.06.09 핸들러 메소드 URI 패턴 (0) 2020.06.09 스프링MVC 핸들러 아규먼트와 리턴타입 살펴보기 (0) 2020.06.08