在项目中做form表单功能提交时,防止用户客户端后退或者刷新时重复提交问题,需要在服务端进行重定向跳转,具体跳转方式有以下几种方式:

公用代码:

  1. @RequestMapping(value=“/index”,method = { RequestMethod.POST, RequestMethod.GET })
  2. public  ModelAndView index(HttpServletResponse response){
  3. ModelAndView model = new ModelAndView(“/home/index”);
  4. return model;
  5. }
@RequestMapping(value="/index",method = { RequestMethod.POST, RequestMethod.GET })
public ModelAndView index(HttpServletResponse response){
ModelAndView model = new ModelAndView("/home/index");
return model;
}

一、使用HttpServletResponse 进行重定向跳转

  1. @RequestMapping(value=“/toIndex”,method = { RequestMethod.POST, RequestMethod.GET })
  2. ublic  ModelAndView toIndex(HttpServletResponse response){
  3. try {
  4. response.sendRedirect(”/index”);
  5. } catch (IOException e1) {
  6. }
  7. return null;
       @RequestMapping(value="/toIndex",method = { RequestMethod.POST, RequestMethod.GET })
public ModelAndView toIndex(HttpServletResponse response){
try {
response.sendRedirect("/index");
} catch (IOException e1) {
}
return null;
}

二、依赖spring mvc的 ViewResolver直接跳转

  1. @RequestMapping(value=“/toIndex”,method = { RequestMethod.POST, RequestMethod.GET })
  2. public  String toIndex(HttpServletResponse response){
  3. return “redirect:/index”;
  4. }
@RequestMapping(value="/toIndex",method = { RequestMethod.POST, RequestMethod.GET })
public String toIndex(HttpServletResponse response){
return "redirect:/index";
}

注:当需要传递简单参数时可以使用以上两种方式通过get方式将参数拼接到url路劲后面。

三、依赖Spring mvc的RedirectAttributes 

  1. @RequestMapping(value=“/toIndex”,method = { RequestMethod.POST, RequestMethod.GET })
  2. public  String toIndex(HttpServletResponse response,RedirectAttributes model){
  3. model.addFlashAttribute(”userName”, ‘TimerBin’);
  4. model.addFlashAttribute(”userPass”, ‘ApeVm23U3wxEGocX’);
  5. return “redirect:/index”;
  6. }
@RequestMapping(value="/toIndex",method = { RequestMethod.POST, RequestMethod.GET })
public String toIndex(HttpServletResponse response,RedirectAttributes model){
model.addFlashAttribute("userName", 'TimerBin');
model.addFlashAttribute("userPass", 'ApeVm23U3wxEGocX');
return "redirect:/index";
}

在/home/index 可以直接使用{&lt;/span&gt;&lt;span style=&quot;font-family: monospace; line-height: 1.5; background-color: #fafafa;&quot;&gt;userName&lt;/span&gt;&lt;span style=&quot;font-family: monospace; line-height: 1.5; background-color: #fafafa;&quot;&gt;},&lt;/span&gt;&lt;span style=&quot;line-height: 1.5; font-family: monospace; background-color: #fafafa;&quot;&gt;" role="presentation" style="position: relative;">{</span><span style="font-family: monospace; line-height: 1.5; background-color: #fafafa;">userName</span><span style="font-family: monospace; line-height: 1.5; background-color: #fafafa;">},</span><span style="line-height: 1.5; font-family: monospace; background-color: #fafafa;">{</span><span style="font-family: monospace; line-height: 1.5; background-color: #fafafa;">userName</span><span style="font-family: monospace; line-height: 1.5; background-color: #fafafa;">},</span><span style="line-height: 1.5; font-family: monospace; background-color: #fafafa;">{userPass}来获取重定向跳转的参数信息,这种方式可以处理复杂的参数传值问题,还可以使用此种方式来隐藏或缩短原有请求URL信息。

在controller中获取放在RedirectAttributes中的userName信息的方式:

  1. @RequestMapping(value=“/index”,method = { RequestMethod.POST, RequestMethod.GET })
  2. public  ModelAndView index(@ModelAttribute(“userName”) String userName){
  3. ModelAndView  model = new ModelAndView(“/main/index”);
  4. model.addObject(”userName”, userName);
  5. return model;
  6. }
@RequestMapping(value="/index",method = { RequestMethod.POST, RequestMethod.GET })
public ModelAndView index(@ModelAttribute("userName") String userName){
ModelAndView model = new ModelAndView("/main/index");
model.addObject("userName", userName);
return model;
}

 注:在项目中使用RedirectAttributes,因为该对象就是把参数信息放到项目中的session中,再多台服务器中使用该对象存储参数时已经要保证sesion设置是粘性的,不然在集群服务器中不支持该对象的使用!

spring mvc redirect 重定向 跳转并传递参数的更多相关文章

  1. Spring MVC(十)--通过表单序列化传递参数

    通过表单序列化传递参数就是将表单数据转化成字符串传递到后台,序列化之后参数请求变成这种模式param1=value1&&param2=value2,下面用代码实现. 1.创建表单 &l ...

  2. spring mvc controller间跳转 重定向 传参(转)

    spring mvc controller间跳转 重定向 传参 url:http://zghbwjl.blog.163.com/blog/static/12033667220137795252845/ ...

  3. Spring MVC页面重定向

    以下示例显示如何编写一个简单的基于Web的重定向应用程序,这个应用程序使用重定向将http请求传输到另一个页面. 基于Spring MVC - Hello World实例章节中代码,创建创建一个名称为 ...

  4. mvc中view与controll之间传递参数时,可以使用url进行传递

    mvc中view与controller之间传递参数时,可以使用url进行传递,但是在url的地址中需要加上“id=123”这样的东西才行. 具体如代码: window.location.href = ...

  5. [Xcode 实际操作]九、实用进阶-(24)使用Segue(页面的跳转连接)进行页面跳转并传递参数

    目录:[Swift]Xcode实际操作 本文将演示使用Segue(页面的跳转连接)进行页面跳转并传递参数. 参照结合:[Xcode10 实际操作]九.实用进阶-(23)多个Storyboard故事板中 ...

  6. spring mvc controller间跳转 重定向 传参 (转)

    转自:http://zghbwjl.blog.163.com/blog/static/12033667220137795252845/ 1. 需求背景     需求:spring MVC框架contr ...

  7. Spring Mvc Controller间跳转 重定向 传参 (转)

    原文链接:http://zghbwjl.blog.163.com/blog/static/12033667220137795252845/ 1. 需求背景     需求:spring MVC框架con ...

  8. spring mvc controller间跳转 重定向

    1. 需求背景     需求:spring MVC框架controller间跳转,需重定向.有几种情况:不带参数跳转,带参数拼接url形式跳转,带参数不拼接参数跳转,页面也能显示. 本来以为挺简单的一 ...

  9. Spring MVC 页面跳转时传递参数

    页面仍然使用 JSP,在跳转时如果想传递参数则需要用到类 RedirectAttributes. 首先看看如何打开一个普通页面: // 登录页面(每个页面都要独立的 Action 来支持其呈现) @R ...

随机推荐

  1. JavaScript学习总结(5)——Javascript面向(基于)对象编程

    一.澄清概念 1.JS中"基于对象=面向对象" 2.JS中没有类(Class),但是它取了一个新的名字叫"原型对象",因此"类=原型对象" ...

  2. session应用二

    从session中获取mapper对象,利用mapper对象进行增删改查 Date now = new Date(); SqlSession session = this.yangchebaoDbMa ...

  3. c3p0的经常使用配置方式

    1:第一种方式很easy c3p0.driverClass=com.mysql.jdbc.Driver c3p0.jdbcUrl=jdbc:mysql://localhost:3308/databas ...

  4. 配置PL/SQL Developer连接server数据库

    配置PL/SQL Developer连接server数据库 远程应用server上安装client客户端软件,可在oracle官网上下载. 举例: 环境 应用server操作系统 WIN 7 本地地址 ...

  5. jvisualvm 工具使用

    VisualVM 是Netbeans的profile子项目,已在JDK6.0 update 7 中自带(java启动时不需要特定参数,监控工具在bin/jvisualvm.exe). https:// ...

  6. 5W1H分析法和5W2H分析法

    5W1H分析法也称六何分析法,是一种思考方法,也可以说是一种创造技法.是对选定的项目.工序或操作,都要从原因(WHY).对象(WHAT).地点(WHERE).时间(WHEN).人员(WHO).方法(H ...

  7. swift开发多线程篇 - NSThread 线程相关简单说明(一些使用和注意点)

    一 说明 本文涉及代码可以从https://github.com/HanGangAndHanMeimei/Code地址获得. 二 NSThread的基本使用和创建 1)基本用法(主线程|当前线程) 1 ...

  8. 特征描述子(feature descriptor) —— HOG(方向梯度直方图)

    HOG(Histogram of Oriented Gradients),描述的是图像的局部特征,其命名也暗示了其计算方法,先计算图像中某一区域不同方向上梯度的值,然后累积计算频次,得到直方图,该直方 ...

  9. 10.10 android输入系统_APP获得并处理输入事件流程

    APP对fd/InputChannel的注册过程: new WindowInputEventReceiver extends InputEventReceiver//InputEventReceive ...

  10. like小计

    1.有索引的列最好进行 ‘aa%’形式可以使用一些索引. 2.如果非得进行 ‘%aa%’这种类型查询,那这个条件不要进行主要过滤条件. 意思是这个列如果有索引就不能用索引,即使用了,索引页是进行对整个 ...