gpt4 book ai didi

java - Spring RedirectAttributes : addAttribute() vs addFlashAttribute()

转载 作者:IT老高 更新时间:2023-10-28 13:01:36 24 4
gpt4 key购买 nike

到目前为止,我的理解是关于我们的 Controller 请求映射方法,我们可以指定 RedirectAttributes 参数并在请求被重定向时使用属性填充它。

示例:

@RequestMapping(value="/hello", method=GET)
public String hello(RedirectAttributes redirAttr)
{
// should I use redirAttr.addAttribute() or redirAttr.addFlashAttribute() here ?

// ...

return "redirect:/somewhere";
}

然后重定向属性将在重定向到的目标页面上可用。

然而 RedirectAttributes 类有两个方法:

已经阅读 Spring 文档有一段时间了,但我有点迷茫。这两者之间的根本区别是什么?我应该如何选择使用哪一个?

最佳答案

区别如下:

  • addFlashAttribute() 实际上将属性存储在 flashmap 中(在用户 session 内部维护并删除一旦下一个重定向请求得到满足)

  • addAttribute() 本质上构造了 请求参数您的属性并通过请求重定向到所需的页面参数。

所以 addFlashAttribute()优势 将是您可以在 flash 属性 中存储几乎任何对象(因为它不是完全序列化为请求参数,但作为对象维护),而使用 addAttribute() 因为您添加的对象被转换为普通请求参数,所以您非常受限于像 字符串或原语。

关于java - Spring RedirectAttributes : addAttribute() vs addFlashAttribute(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14470111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com