Java Spring 프레임워크에서 리다이렉트 시 파라미터를 전달하는 방법
2025. 3. 6. 08:08ㆍIT/기타
반응형
Java Spring 프레임워크에서 리다이렉트 시 파라미터를 전달하는 방법은 여러 가지가 있습니다. 대표적인 방법을 소개하겠습니다.
1. RedirectAttributes 사용 (추천)
Spring의 RedirectAttributes를 사용하면 URL에 파라미터를 추가하거나, Flash 속성을 이용해 일회성 데이터를 전달할 수 있습니다.
URL 쿼리 파라미터 전달 (GET 방식)
@Controller
public class SampleController {
@GetMapping("/redirect")
public String redirectWithParams(RedirectAttributes redirectAttributes) {
redirectAttributes.addAttribute("name", "John");
redirectAttributes.addAttribute("age", 30);
return "redirect:/target";
}
@GetMapping("/target")
@ResponseBody
public String target(@RequestParam String name, @RequestParam int age) {
return "Name: " + name + ", Age: " + age;
}
}
👉 브라우저에서 /redirect로 요청하면 /target?name=John&age=30으로 리다이렉트됩니다.
Flash Attribute 사용 (POST-Redirect-GET 패턴)
FlashAttribute는 일회성 데이터 저장을 위해 사용되며, 리다이렉트된 후 소멸됩니다.
@Controller
public class SampleController {
@PostMapping("/submit")
public String handleSubmit(RedirectAttributes redirectAttributes) {
redirectAttributes.addFlashAttribute("message", "Success!");
return "redirect:/result";
}
@GetMapping("/result")
public String resultPage(Model model) {
return "result"; // 뷰에서 ${message}로 접근 가능
}
}
👉 redirect:/result 이후 message 값은 유지되지만 URL에 노출되지 않습니다.
2. URL 직접 지정 (단순한 경우)
쿼리 스트링을 직접 작성하여 리다이렉트할 수도 있습니다.
@GetMapping("/redirect2")
public String redirectManually() {
return "redirect:/target?name=Jane&age=25";
}
👉 URL을 직접 구성해야 하므로, 파라미터 값이 동적으로 변하는 경우 RedirectAttributes 사용이 더 적절합니다.
3. HttpServletResponse 사용
HttpServletResponse.sendRedirect()를 사용하면 완전히 새로운 요청으로 이동할 수 있습니다.
@GetMapping("/redirect3")
public void redirectWithResponse(HttpServletResponse response) throws IOException {
response.sendRedirect("/target?name=Mike&age=40");
}
👉 Spring MVC 방식보다는 덜 사용되며, 리턴값을 활용할 수 없습니다.
반응형
'IT > 기타' 카테고리의 다른 글
| 리눅스에서 CPU 사용량을 확인하는 방법 (1) | 2025.03.06 |
|---|---|
| 🚀 아이폰 17 에어: 특징 및 전망 (4) | 2025.03.06 |
| 핀플루언서(Finfluencer)란? 금융 시장을 움직이는 새로운 영향력 (5) | 2025.03.05 |
| 공공 SW 사업 품질 저하 원인과 해결 방안 (4) | 2025.03.04 |
| 딥페이크 무료 앱 추천 – 재미있게 얼굴 바꾸기 (5) | 2025.03.04 |