springMVC controller间跳转 重定向 传递参数的方法

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

常用的方法:

(1)从一个controller中的方法跳转到另一个controller中的方法不需要传递参数

方式一:使用ModelAndView

return new ModelAndView(“redirect:/toList”);

这样可以重定向到另一个controller的toList这个方法

方式二:返回String

return “redirect:/ toList “;

这是不带参数的重定向。

( 2)第二种情况,需要携带参数时参数可以拼接url

方式一:自己手动拼接url

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

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

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

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

使用方法:

public String save(RedirectAttributes attr)

attr.addAttribute(“param”, value);

return “redirect:/namespace/toController”;

这样在toController这个方法中就可以通过获得参数的方式获得这个参数,再传递到页面。过去的url还是和方式一

一样的。

获得参数的方式:

request.getParameter(“productActivityId”);

(3)带参数不拼接url页面也能拿到值(重点是这个)

一般我估计重定向到都想用这种方式:

@RequestMapping(“/save”)

public String save(@ModelAttribute(“form”) Bean form,RedirectAttributes attr)

throws Exception {

String code = service.save(form);

if(code.equals(“000”)){

attr.addFlashAttribute(“name”, form.getName());

attr.addFlashAttribute(“success”, “添加成功!”);

return “redirect:/index”;

}else{

attr.addAttribute(“projectName”, form.getProjectName());

attr.addAttribute(“enviroment”, form.getEnviroment());

attr.addFlashAttribute(“msg”, “添加出错”);

return “redirect:/maintenance/toAddConfigCenter”;

}

}

addFlashAttribute() springMVC3中 该方法将信息放到session中,在页面直接用el表达式就可以获得.session在跳到页面后

马上移除对象。所以你刷新一下后这个值就会丢掉。

总结

本质还是两次跳转,spring进行了封装;

springMVC controller间跳转 重定向 传递参数的方法的更多相关文章

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

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

  2. springMVC controller间跳转、重定向、传参

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

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

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

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

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

  5. spring mvc controller间跳转 重定向

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

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

    http://blog.csdn.net/jackpk/article/details/19121777/

  7. Android实现页面跳转及传递参数的方法

    简单的示例 实现的效果是这样的: 第一个页面有一个按钮,一个文本框,点击按钮,将文本框的内容传递到第二个页面,并显示在第二个页面中. 首先是在给按钮添加点击事件 setOnClickListener( ...

  8. Spring mvc框架 controller间跳转 ,重定向 ,传参

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

  9. JSP重定向传递参数

    我一个JSP程序,要实现前台提交数据给后台处理后,后台jsp自动跳转到另一个jsp页面,这种方式也叫重定向,重定向的方法有多种,暂时我试过的并且能成功的有两个: 一种是用 response.sendR ...

随机推荐

  1. ajax原理及使用

    1.关于同步和异步 异步传输是面向字符的传输,它的单位是字符:而同步传输是面向比特的传输,它的单位是桢,它传输的时候要求接受方和发送方的时钟是保持一致的. 具体来说,异步传输是将比特分成小组来进行传送 ...

  2. Redis源码解析:18Hiredis同步API和回复解析API代码解析

    Redis的sentinel模式使用了Hiredis代码,Hiredis是redis数据库一个轻量级的C语言客户端库.它实现的向Redis发送命令的API函数redisCommand,使用方法类似于p ...

  3. MySQL语句错误及解决方案

    1.group by查询错误 ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contai ...

  4. MVC的学习步骤

    (1)搭建环境(2)如何完成Controller和 Model的映射(3)如何把值传给Controller(4)Controller如何把值传给viewer(5)异常处理(6)页面标签(7)文件上传( ...

  5. leetcode 76 dp& 强连通分量&并查集经典操作

    800. Similar RGB Color class Solution { int getn(int k){ return (k+8)/17; } string strd(int k){ char ...

  6. NoSQL最新现状和趋势:云NoSQL数据库将成重要增长引擎

    NoSQL最早起源于1998年,但从2009年开始,NoSQL真正开始逐渐兴起和发展.回望历史应该说NoSQL数据库的兴起,完全是十年来伴随互联网技术,大数据数据的兴起和发展,NoSQL在面临大数据场 ...

  7. 问题解决:在js中绑定onclick事件为什么不加括号,在html代码中必须要加?(转载)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. openpyxl 模块的使用

    参考博客:https://www.cnblogs.com/anpengapple/p/6399304.html?utm_source=itdadao&utm_medium=referral 在 ...

  9. 从0开始学习 GitHub 系列之「03.Git 速成」

    前面的 GitHub 系列文章介绍过,GitHub 是基于 Git 的,所以也就意味着 Git 是基础,如果你不会 Git ,那么接下来你完全继续不下去,所以今天的教程就来说说 Git ,当然关于 G ...

  10. fc_net.py cs231n

    n如果有错误,欢迎指出,不胜感激 import numpy as np from cs231n.layers import * from cs231n.layer_utils import * cla ...