我有一个URL,该URL在调用时会重定向到另一个URL。我想将一些数据与重定向一起传递。

例如,我有这种方法:

@RequestMapping("efetuaEnvioEmail")
    public String efetuaEnvioEmail(HttpServletResponse response) throws IOException {
        System.out.println("efetuaEnvioEmail");
        return "redirect:inicio";
    }


哪个重定向到此:

@RequestMapping("inicio")
    public String Inicio(HttpServletRequest request) throws IOException {

        return "Inicio";
    }


我想传递一些数据,通知第一种方法一切正常。

我尝试了HttpServletRequest和HttpServletResponse的某些方法,但是我什么都没有。

最佳答案

使用RedirectAttributes在处理程序方法之间传递任何数据:

@RequestMapping("efetuaEnvioEmail")
public String efetuaEnvioEmail(RedirectAttributes rattrs) {
    rattrs.addAttribute("string", "this will be converted into string, if not already");
    rattrs.addFlashAttribute("pojo", "this can be POJO as it will be stored on session during the redirect");
    return "redirect:inicio";
}

@RequestMapping("inicio")
public String Inicio(@ModelAttribute("pojo") String pojo) {
    System.out.println(pojo);
    return "Inicio";
}

09-11 19:19