项目记录:springmvc forward redirect 问题

@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这个属性的。也是无法防止用户刷新页面重复提交数据的

原文地址:https://www.cnblogs.com/appzhang/p/3910802.html