为什么我们需要RedirectAttributes.addAttribute()?

时间:2017-05-08 10:10:53

标签: spring-mvc

Spring提供了以下选项,通过使用RedirectAttributes将属性(params)传递给重定向页面。

@Controller
@RequestMapping("/")
public class RedirectController {

    @GetMapping("/redirectWithRedirectView")
    public ModelAndView redirectWithUsingRedirectView(RedirectAttributes attributes) {
        attributes.addAttribute("attribute", "redirectWithRedirectView");
        return new ModelAndView("redirect:redirectedUrl");
    }
} 

即使我们只是将属性附加到重定向URL,也可以实现同样的效果,如下所示

@Controller
@RequestMapping("/")
public class RedirectController {

    @GetMapping("/redirectWithRedirectView")
    public ModelAndView redirectWithUsingRedirectView() {
        return new ModelAndView("redirect:redirectedUrl?attribute=redirectWithRedirectView");
    }
} 

两者都做同样的工作。如果我们使用RedirectAttributes,我们会在内存方面获得任何好处吗?我猜,在第二种情况下,如果每个请求的属性值发生变化,我们将构建单独的ModelAndView对象。

0 个答案:

没有答案