1. 程式人生 > >SpringMVC在redirect重定向的時候攜帶引數的問題

SpringMVC在redirect重定向的時候攜帶引數的問題

SpringMVC 中常用到 redirect來實現重定向。但使用場景各有需求,如果只是簡單的頁面跳轉顯然無法滿足所有要求,比如重定向時需要在 url 中拼接引數,或者返回的頁面需要傳遞 Model。SpringMVC 用 RedirectAttributes 解決了這兩個需要。

首先,在 Controller 中做 redirect 中可用如下方式實現:
return new ModelAndView(“redirect:/index”);

return “redirect:/index”;

此時,如果只是重定向至某一 URL 或者比較簡單地址,也可以不用 RedirectAttributes,直接拼接,如:return “redirect:/index?param1=value1″;

但是這樣似乎有點過於簡單粗暴,而且引數多了很容易使程式碼可讀性變差。使用 RedirectAttributes 來設定重定向頁面的引數,SpringMVC 會自動拼接 url。接下來主要介紹該物件的兩個方法:

1. addAttribute

@RequestMapping("/save")
public String save(User user, RedirectAttributes redirectAttributes) {
    redirectAttributes.addAttribute("param", "value1");
    return "redirect:/index"
; }

請求 /save 後,跳轉至/index,並且會在url拼接 ?param=value1。

2. addFlashAttribute

@RequestMapping("/save")
public String save(User user, RedirectAttributes redirectAttributes) {
    redirectAttributes.addFlashAttribute("param", "value1");
    return "redirect:/index";
}

請求 /save 後,跳轉至 /index,並且可以在 index 對應的模版中通過表示式,比如 jsp 中 jstl 用 ${param},獲取返回值。該值其實是儲存在 session 中的,並且會在下次重定向請求時刪除。

RedirectAttributes 中兩個方法的簡單介紹就是這樣。

相關推薦

javaEE定向傳遞引數亂碼解決

在javaEE中通過重定向後面的問號傳遞中文,會有亂碼問題。 問題 response.sendRedirect(“DeptListServlet?msg=該條記錄已經被刪除”); 解決 通過URLEncoder進行中文編碼 String msg = java.net.URL

SpringMVC RedirectAttributes 實現定向引數 Controller接受引數

springmvc 在3.1版本後提供了 重定向帶引數,之前不知道,使用的是session重定向後又清除這個機智而又粗魯的方法。 在知道RedirectAttributes能做這件事後,這還能忍?立馬回去把程式碼改了,順便發個部落格 /** * 頁面跳轉 至上傳不成功excel 以及li

SpringMVC定向引數的實現

https://blog.csdn.net/u011851478/article/details/51872977 在spring的一個controller中要把引數傳到頁面,只要配置檢視解析器,把引數新增到Model中,在頁面用el表示式就可以取到。但是,這樣使用的是forward方式,瀏覽器

Response定向實現引數隱藏

最近在弄一個SSH專案,前期已經做好了,現在的需求是進行單點登陸實現,涉及到重定向跳轉(帶有引數那種)情況,但是不能在位址列上出現引數的資訊,需要進行引數的隱藏跳轉。由於時間比較急,本人沒來得及開發一個小工具,這次用的別人以前寫好的工具類進行引數隱藏。放在這裡好讓自己積累一些工具類,也方便大家參考!好了,直接

帶問號的url定向引數保留--nginx rewrite

栗子: http://host/demo/sub/z10?x=95&y=27=>http://host/demo/sub/10/95_27.png 問題: 1、重定向前url帶有問號,

JSP定向傳遞引數

    我一個JSP程式,要實現前臺提交資料給後臺處理後,後臺jsp自動跳轉到另一個jsp頁面,這種方式也叫重定向,重定向的方法有多種,暫時我試過的並且能成功的有兩個: 一種是用 response.sendRedirect("A.jsp"); A.jsp是你要跳轉到的jsp

springMVC定向引數傳遞及中文引數亂碼問題

springMVC重定向時,若需要帶引數,如果直接用return "redirect:/items?g="+group的話,一者跳轉時引數可見不安全,二者,中文引數可能會亂碼,此時可在當前方法入參中加入RedirectAttributes attr,然後在方法體中用attr

action之間定向傳遞引數

方法一 <action name="save" class="orderAction" method="save" >    <result name="success" type="

java 定向引數中文亂碼)

            java在servlet中使用重定向response.sendRedirect時,連結中的引數列表為中文時將會獲取不到引數資料。 解決方案為:將引數轉化為iso-8859-1編

springmvc controller間定向引數跳轉的解決方案

RedirectAttributes是spring mvc 3.1版本之後出來的一個功能,專門用於重定向之後還能帶引數跳轉的,                    這裡用它的addAttribute方法,這個實際上重定向過去以後你看url,是它自動給你拼了你的url。 他有兩種帶參的方式: 第一種: at

SpringMVC在redirect定向的時候攜帶引數的問題

SpringMVC 中常用到 redirect來實現重定向。但使用場景各有需求,如果只是簡單的頁面跳轉顯然無法滿足所有要求,比如重定向時需要在 url 中拼接引數,或者返回的頁面需要傳遞 Model。SpringMVC 用 RedirectAttribute

關於Retrofit2+Okhttp3實現統一新增請求引數定向

Android開發中難免會遇到一些比較“不友好”的服務端介面。比如以前遇到的json資料中,某個欄位偶爾為Object,偶爾為List… 最近遇到的一個問題就是:所有請求介面都要增加一個token引數… 並且token引數有可能過期,比如請求某一條介面,如果token失效則在該請求

Spring MVC(三)控制器獲取頁面請求引數以及將控制器資料傳遞給頁面和實現定向的方式

首先做好環境配置 在mvc.xml裡進行配置   1.開啟元件掃描   2.開啟基於mvc的標註   3.配置試圖處理器 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www

Vue router 路由巢狀 路由定向 路由別名 router-link傳引數

<template> <div> 這是商品列表頁面 <router-link :to="{ name: 'title'}">標題</router-link> <router-link to="/good

ServletRequest HttpServletRequest 請求方法 獲取請求引數 請求轉發 請求包含 請求轉發與定向區別 獲取請求頭欄位

ServletRequest 基本概念 JavaWeb中的 "Request"物件  實際為   HttpServletRequest  或者  ServletRequest,   兩者都為介面 伺服器接收請求後,將請求資料進行物件封裝 功能大致分類

Controller定向時新增引數

         今天專案中遇到一個小麻煩,在進行新增或者刪除等一些操作,又跳回到原頁面,但所有資料都已經沒有了,因為是之前第一次跳轉頁面時攜帶的有引數,執行完一些操作之後,丟失了之前的引數,所以沒有資料顯示。是個小

okhttp post 定向引數丟失 跨協議定向

序言 最近的專案中,一個已經開發多時的介面突然就不能用了。抓包發現,原來是由於重定向引起的bug。發現了兩個。 問題1. 如果遇到301,302等重定向,則會忽略原來的請求方式,統一使用GET方式。如果原來使用的是POST方式,則會丟失引數。如下圖

spring mvc redirect 定向 跳轉並傳遞引數 && mvc:view-controller直接轉發頁面

在專案中做form表單功能提交時,防止使用者客戶端後退或者重新整理時重複提交問題,需要在服務端進行重定向跳轉,具體跳轉方式有以下幾種方式: 公用程式碼: Java程式碼   @RequestMapping(value="/index",method = { Reque

定向到帶引數的連結或者方法時需要在reverse里加引數,args=[]或者關鍵字引數的方式。

新問題,重定向到需要引數的方法時,必須要帶引數否則不會成功 reverse裡面用args=[topic_id]或者keyword的方式。 def new_entry(request, topic_id): """獲取由url傳遞過來的id,讓新增者知道在哪個主題下添加了條目"""

springMVC定向redirect傳遞引數

@RequestMapping(value = "/submit") public String submit(RedirectAttributes attr,HttpServletRequest request) throws IOExceptio