spring MVC框架controller间跳转,需重定向。有几种情况:不带参数跳转,带参数拼接url形式跳转,带参数不拼接参数跳转,页面也能显示。

首先先来介绍一下不带参数的重定向:

我在后台一个controller跳转到另一个controller,为什么有这种需求呢,是这样的。我有一个列表页面,然后我会进行新增操作,新增在后台完成之后我要跳转到列表页面,不需要传递参数,列表页面默认查询所有的。

方式一:使用ModelAndView(这是Spring 2.0的时候所用到的方法)

return new ModelAndView("redirect:/toList");

这样可以重定向到toList这个方法

方式二:返回String

return "redirect:/ toList ";

然后在说一下带参数的重定向

第二种情况,列表页面有查询条件,跳转后我的查询条件不能丢掉,这样就需要带参数的了,带参数可以拼接url

方式一:自己手动拼接url

new ModelAndView("redirect:/toList?param1="+value1+"&param2="+value2);

这样有个弊端,就是传中文可能会有乱码问题。

方式二:用RedirectAttributes,这个是发现的一个比较好用的一个类

这里用它的addAttribute方法,这个实际上重定向过去以后你看url,是它自动给你拼了你的url。

使用方法:

public String test(RedirectAttributes attributes)

{

attributes.addAttribute("test", "hello");

return "redirect:/test/test2";

}

这样在toController这个方法中就可以通过获得参数的方式获得这个参数,再传递到页面。过去的url还是和方式一一样的。如果你细心的看重定向之后的url地址的话,你就会发现其实和上面的地址是一样的,这样也会出现上面那个方法出现的问题。

重点来了,咱们介绍一个不会出现中文乱码,而且不会在你的Url上出现你所要传递的数据的,这样就可以保证你在传递数据的安全

public String red(RedirectAttributes attributes)

{

attributes.addFlashAttribute("test", "hello");

return "redirect:/test/test2";

}

咱们用上面的方法进行数据传递你就会发现不会再Url上出现你要传递的数据,那么数据放到哪里去了,我们就来看看这是Spring 3.0新出现的特性,attributes.addFlashAttribute("test", "hello")实际存储的属性在flashmap,那么flashmap又是什么呢?

Flash 属性 和 RedirectAttribute:通过FlashMap存储一个请求的输出,当进入另一个请求时作为该请求的输入,典型场景如重定向(POST- REDIRECT-GET模式,1、POST时将下一次需要的数据放在FlashMap;2、重定向;3、通过GET访问重定向的地址,此时 FlashMap会把1放到FlashMap的数据取出放到请求中,并从FlashMap中删除;从而支持在两次请求之间保存数据并防止了重复表单提 交)。

Spring Web MVC提供FlashMapManager用于管理FlashMap,默认使用SessionFlashMapManager,即数据默认存储在session中

既然知道了怎么回事,那么我们就可以把它提取出来,怎么提取呢,很多人会说,既然存在session中,那就从session中获取,结果发现没有,那怎么办?

下面我就给大家提供两个方法让大家把addFlashAttribute中的数据提取出来

方法一:利用httpServletRequest

public String test2(HttpServletRequest request)

{

Map map = RequestContextUtils.getInputFlashMap(request);

System.out.println(map.get("test").toString());

return "/test/hello";

}

方法二:利用Spring提供的标签@ModelAttribute

public String test2(@ModelAttribute("test") String str)

{

System.out.println(str);

return "/test/hello";

}

以上两种方法是在后台Controller层获取值的方法,如果是在前台页面的话,就会比较简单,直接利用el表达式就可以取到数据

springmvc重定向到另一个项目_SpringMVC——redirect重定向跳转传值相关推荐

  1. springmvc重定向到另一个项目_springmvc怎么重定向,从一个controller跳到另外一个controller...

    前言:html 有做者写出了部分方法,但没有给出具体实践,小白看后云里雾里,我这里作两件事:1 给出具体代码 2 对已经有的方法给出补充.java 参考:http://my.oschina.net/u ...

  2. springmvc重定向到另一个项目_SpringMVC结合Ajax、请求转发重定向、视图解析器

    每日总结 一.Spring结合Ajax的处理方式 1.传统解决方案 直接输出 2.使用SpringMVC框架提供的处理方法 注意: A.方法的返回值可以是对象或者集合 B.响应给前台的数据直接是jso ...

  3. springmvc重定向到另一个项目_Spring MVC重定向和转发详解

    Spring MVC请求方式分为转发.重定向两种,是用forward和redirect关键字在controller层进行处理.本文我们就来探讨一下Spring MVC请求方式中的Spring MVC重 ...

  4. springmvc重定向到另一个项目_spring mvc的转发与重定向

    转发与重定向 spring mvc底层其实就是一个servlet,因此在spring mvc中也存在转发和重定向的概念.对于转发的页面,可以是在WEB-INF目录下的页面:而重定向的页面,是不能在WE ...

  5. forward 方法详解 java_详解Java从后台重定向(redirect)到另一个项目的方法

    (1)通过ModelAndView跳转 @RequestMapping("alipayforward") public ModelAndView alipayforward(Htt ...

  6. redirect java 配置_Java从后台重定向(redirect)到另一个项目的方法

    (1)通过ModelAndView跳转 @RequestMapping("alipayforward")public ModelAndView alipayforward(Http ...

  7. java 重定向 redirect_详解Java从后台重定向(redirect)到另一个项目的方法

    (1)通过ModelAndView跳转 @RequestMapping("alipayforward") public ModelAndView alipayforward(Htt ...

  8. 如何重定向到另一个网页? [英]How do I redirect to another webpage?

    How can I redirect the user from one page to another using jQuery or pure JavaScript? 如何使用jQuery或纯Ja ...

  9. springmvc如何使用视图解析器_SpringMVC相关面试题

    点击蓝字 关注我们 最近面试时,每家公司的必问题,今日作此分享,如有更好的解决方案或者存在错误,还请指正. Q1 什么是 SpringMvc? SpringMvc 是 spring 的一个模块,基于 ...

最新文章

  1. 作业06-接口、内部类
  2. 不得不爱开源 Wijmo jQuery 插件集(4)-【手风琴效果】(附页面展示和源码)
  3. ASP.NET Core 处理 404 Not Found
  4. c是过程化语言吗数据库,关于SQL错误的是()A、所有数据库的公共语言B、非过程化的C、统一的语言D、所有用SQL缩写的程序都...
  5. 苹果cmsv10精仿迅播影院2tu风格主题模板
  6. Linux Install telnet
  7. mysql 查看autocommit_手把手教你分析Mysql死锁问题
  8. php 提取字的首字母,PHP提取中文首字母_php技巧
  9. 类中的__init__()
  10. js 根据某属性取出数组中对应的对象
  11. FocusLab新生大礼包三:Latex安装教程
  12. javashop 发布开源放大镜HiZoom插件
  13. 如何解决微软自带输入法突然变成繁体
  14. 北京链家买二手房的经历与感受
  15. CATIA二次开发:工程图中文本的遍历和修改
  16. dwcs6 mysql站点_dreamweaver cs6中本地站点的管理方法讲解
  17. 一点击文件夹里的wps文件就卡死,不管放在哪个盘
  18. html框架自动居中,html 宽度固定并布局居中模板框架
  19. 谷歌浏览器的本地收藏夹在什么位置?
  20. 函数中使用sizeof(arr) / sizeof(arr[0])求数组长度不正确的原因

热门文章

  1. python islower函数_python字符串是否是小写-python 字符串小写-python islower函数-python islower函数未定义-嗨客网...
  2. 网页突然乱码_电脑打开网页出现乱码
  3. java db 程序_JAVA连接数据库的简单程序
  4. c语言向自定数组_数据结构之用C语言实现定义数组
  5. Check failed: error == cudaSuccess (74 vs. 0) misaligned address的解决方法
  6. OpenCV—中值滤波
  7. Golang学习笔记——Slice
  8. Kruskal Prim模板
  9. 计算机系统和中断的概念
  10. 利用DelegatingHandler实现Web Api 的Api key校验