微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SpringMVC 重定向参数 RedirectAttributes

SpringMVC 中常用到 redirect 来实现重定向。但使用场景各有需求,如果只是简单的页面跳转显然无法满足所有要求,比如重定向时需要在 url 中拼接参数,或者返回的页面需要传递 Model。SpringMVC 用 RedirectAttributes 解决了这两个需要。

首先,在 Controller 中做 redirect 中可用如下方式实现:
return new ModelAndView(“redirect:/index”);

return “redirect:/index”;

此时,如果只是重定向至某一 URL 或者比较简单地址,也可以不用 RedirectAttributes,直接拼接,如:return “redirect:/index?param1=value1″;

但是这样似乎有点过于简单粗暴,而且参数多了很容易使代码可读性变差。使用 RedirectAttributes 来设置重定向页面的参数,SpringMVC 会自动拼接 url。接下来主要介绍该对象的两个方法

1. addAttribute

@RequestMapping("/save")
public String save(User user, RedirectAttributes redirectAttributes) {
    redirectAttributes.addAttribute("param", "value1");
    return "redirect:/index";
}

请求 /save 后,跳转至/index,并且会在url拼接 ?param=value1。

2. addFlashAttribute

@RequestMapping("/save")
public String save(User user, RedirectAttributes redirectAttributes) {
    redirectAttributes.addFlashAttribute("param", "value1");
    return "redirect:/index";
}

请求 /save 后,跳转至 /index,并且可以在 index 对应的模版中通过表达式,比如 jsp 中 jstl 用 ${param},获取返回值。该值其实是保存在 session 中的,并且会在下次重定向请求时删除

RedirectAttributes 中两个方法的简单介绍就是这样。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐