복붙노트

[SPRING] spring mvc에서 리다이렉트 (redirect) 한 후 컨트롤러에서 pass 매개 변수를위한 방법은 무엇입니까?

SPRING

spring mvc에서 리다이렉트 (redirect) 한 후 컨트롤러에서 pass 매개 변수를위한 방법은 무엇입니까?

mycontroller 메소드로 작성하는 경우 :

return  "redirect:url";

어떤 매개 변수가 URL로 전달됩니까 (JSP 페이지의 컨트롤러 메소드일까요?)?

해결법

  1. ==============================

    1.RedirectAttributes를 사용하면 거의 모든 데이터를 리디렉션 URL에 전달할 수 있습니다.

    RedirectAttributes를 사용하면 거의 모든 데이터를 리디렉션 URL에 전달할 수 있습니다.

    @RequestMapping(value="/someURL", method=GET)
    public String yourMethod(RedirectAttributes redirectAttributes)
    {
       ...
       redirectAttributes.addAttribute("rd", "rdValue");
       redirectAttributes.addFlashAttribute("fa", faValue);
       return "redirect:/someOtherURL";
    }
    

    addAttribute를 사용하여 속성을 추가하면 대상 리디렉션 URL로 끝납니다. 이러한 속성은 요청 매개 변수를 구성하는 데 사용되며 클라이언트 (브라우저)는 이러한 매개 변수를 사용하여 리디렉션 URL에 새 요청을 보냅니다. 이를 통해 리디렉션 속성으로 String 또는 프리미티브를 사용하도록 제한됩니다.

    addFlashAttribute를 사용하면 이러한 속성은 리디렉션 전에 (일반적으로 세션에서) 일시적으로 저장되고 리디렉션 후에 요청에 사용할 수 있으며 즉시 제거됩니다. flashAttributes를 사용하면 모든 객체를 플래시 속성 (세션에 저장 됨)으로 추가 할 수 있다는 장점이 있습니다.

  2. from https://stackoverflow.com/questions/19266427/what-are-ways-for-pass-parameters-from-controller-after-redirect-in-spring-mvc by cc-by-sa and MIT license