?
@RequestMapping("/redirect")
public String redirect(RedirectAttributes redirectAttributes){
redirectAttributes.addFlashAttribute("test", "testdata"); //專供此種情況下使用。
return "redirect:read";
}
注意:此種情況下,網址會跳轉的同時,還攜帶著一個名字為“test”的request變量,即在其導向的模板文件中用${Request["test"]}或${test}可以取得值?"testdata"
而在常規的redirect跳轉中,是沒法保存request變量的。
如果在上述中,用傳統的方法中設置參數ModelMap model,方法體中用 model.setAttributes("test","testdata"); 用這種方式取代redirectAttributes,則在跳轉中,是無法保存request變量的。
這種特性,既可以用來防止用戶刷新網址重復提交數據,又可以給已經跳轉的頁面傳遞一些信息。
?
?
@RequestMapping("/read") // 等效于forward
public String test(){
return "test/read";
}
@RequestMapping("/forward")
public String forward(ModelMap model){
model.addAttribute("test", "test data from forward");
return "test/read";
}
在forward的情況,是無法使用RedirectAttributes這個屬性的。也是無法防止用戶刷新頁面重復提交數據的
?