ModelAndView重定向带参数解决方法

业务场景:SpringMVC项目使用ModelAndView进行重定向跳转到另外一个action时,需要在url后面带上参数

如果是带参数带一个页面,直接用modelAndView.addObject(paramKey,paramValue);

原来代码:

public ModelAndView toPage(){
    ....
    return new ModelAndView(new RedirectView("login.do"));
}

重定向时候在login.do后面带上参数,类似于login.do?param=test

解决方法,如下代码:

public ModelAndView toPage(){
    ....
    Map<String,Object> reqParam = new HashMap<String,Object>(16);
    reqParam.put("param","test");
    return new ModelAndView(new RedirectView("login.do"),reqParam);
}

看ModelAndView源码注释,是支持这种方法的,model是传参,是用于重定向的时候带上参数

public class ModelAndView{
....
 public ModelAndView(View view, Map<String, ?> model) {
        this.view = view;
        if (model != null) {
            this.getModelMap().addAllAttributes(model);
        }
  }
}
....
public ModelMap getModelMap() {
        if (this.model == null) {
            this.model = new ModelMap();
        }

        return this.model;
    }

ModelMap是一个自定义的LinkedHashMap

public class ModelMap extends LinkedHashMap<String, Object> {
    public ModelMap() {
    }
    ....
}

原文地址:https://www.cnblogs.com/mzq123/p/11747839.html

时间: 2024-08-27 01:59:49

ModelAndView重定向带参数解决方法的相关文章

带参数的方法

带参数的方法 1.语法: <访问修饰符>放回值类型<方法名><(形式方法列表)>{ //方法的主体     } 2.调用带参方法 语法:对象名.方法名(参数1,参数2.....参数N)

第十四章 带参数的方法

一.带参数的方法 1.1 语法:       <访问修饰符>  返回类型  <方法名>(<形式参数列表>) { //方法的主体       }    1.2 案例:       榨汁机       public class ZhazhiJi {        //带参数的方法        public String zhazhi(String fruit){//形参         String juice=fruit+"汁";         r

JS参数使用带参数的方法

大家都知道,在JS之中,一个变量的生命周期不是以大括号为界限的,所以即使是使用在循环或判断中的变量,外部也可以使用.可如果我们在循环或变量中使用了方法,而且这个方法使用了循环中的变量,那么后面的代码是可以修改这个变量的值的,而不是,将值的内容完全写死在了循环里面的方法中.那么解决这个问题的一种方法就是,将方法写出来,接收一个参数就可以了. 可是,在JS中传递的参数如果是方法,那么后面不能加上小括号,如果加上的话,就认为是调用了这个方法,会立即执行,这样一来,就更别说是传递参数了,那么如果解决这个

十四.带参数的方法

public class Customer { String[] names = new String[5]; public void addStudent(String name) { for (int i = 0; i < names.length; i++) { if (names[i] == null) { names[i] = name; break; } } } public boolean editName(String newname, String oldname) { boo

带参数的方法。

通过前面的学习,我们知道,类的方法时一个功能模块,作用是做一件事情,实现某一个独立功能. 定义带参方法. 语法: <访问修饰符>返回值类型<方法名>(<参数列表>){ //方法的主体 } 1. <访问修饰符>是指该方法允许被访问的权限范围,只能是public ,proteected或private.其中public 访问修饰符表示该方法可以被任何其他代码调用,另外两种修饰符将在后面学习. 2.  返回值类型指方法方法返回值的类型,如果方法不返回任何值,它应声

【laravel5.4】重定向带参数

1. 2.重定向回上一页面 3.返回上一页面带参数 原文地址:https://www.cnblogs.com/xuzhengzong/p/8715463.html

用线程执行带参数的方法

最近的项目用到了线程,在线程里面需要执行带有参数的方法.之前在百度里面也查到了好多方法,今天想把自己在网上查询结果和自己的应用情况做一个记录,方便后续用到时候查看. 具体需求是这样的:有一个开锁的动作,这个锁所在的PLC地址位需要保持1的状态(开锁状态)维持15秒,然后从1——>0. 我还是个小菜鸟,有写的不对的地方,还请大侠们多多指教. private void btn_OpenLeftLock_Click(object sender, RoutedEventArgs e) { try { T

Firefox 打开谷歌页面提示“检测到该服务器正在将此地址的请求循环重定向”的完美解决方法 (转)

尝试:在火狐地址栏打开 about:config,过滤器"搜索"栏里输入 keyword.URL, 未找到该项 输入https://www.google.com 可以打开  那么把以下设为主页就可以了 https://www.google.com.hk/search?ie=UTF-8&oe=UTF-8&sourceid=navclient&gfns=1&q= 本文适用于Firefox浏览器,Chrome.猎豹等相关的方法请参见http://blog.si

beanutils获取带参数get方法

public Employee getEmployee(int index) {        return new Employee();    } 1.PropertyUtils.getIndexedProperty带2个参数 //    public static void main(String[] args) throws Exception {//        Employee employee=new Employee();//        int index=3;//