1. 程式人生 > 程式設計 >Spring RedirectAttributes引數跳轉程式碼例項

Spring RedirectAttributes引數跳轉程式碼例項

RedirectAttributes 是Spring mvc 3.1版本之後出來的一個功能,專門用於重定向之後還能帶引數跳轉的的工具類。他有兩種帶參的方式:

第一種:

redirectAttributes.addAttributie("prama",value); 這種方法相當於在重定向連結地址追加傳遞的引數,例如:

redirectAttributes.addAttributie("prama1",value1);
redirectAttributes.addAttributie("prama2",value2);
return:"redirect:/path/list" ;

以上重定向的方法等同於 return:"redirect:/path/list?prama1=value1&prama2=value2 " ,注意這種方法直接將傳遞的引數暴露在連結地址上,非常的不安全,慎用。

第二種:

redirectAttributes.addFlashAttributie("prama",value); 這種方法是隱藏了引數,連結地址上不直接暴露,但是能且只能在重定向的 “頁面” 獲取prama引數值。其原理就是放到session中,session在跳到頁面後馬上移除物件。如果是重定向一個controller中是獲取不到該prama屬性值的。除非在controller中用(@RequestPrama(value = "prama")String prama)註解,採用傳參的方式。頁面獲值例如:

redirectAttributes.addFlashAttributie("prama1",value1);

redirectAttributes.addFlashAttributie("prama2",value2);
return:"redirect:/path/list.jsp";

在以上引數均可在list.jsp頁面使用EL表示式獲取到引數值${prama*}

controller獲得redirectAttributes重定向的值例如:

redirectAttributes.addFlashAttributie("prama1",value1);

redirectAttributes.addFlashAttributie("prama2",value2);

return:"redirect:/path/list/"

@RequestMapping("list")
public List<Student> list(@RequestPrama(value = "prama1")String prama1,@RequestPrama(value = "prama2")String prama2,...
){
  //TODO
  //your code

}

  通過在controller中的list方法體中可以獲取到引數值。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。