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() {
    }
    ....
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM