gpt4 book ai didi

java - Spring 的 RedirectAttributes 中 getFlashAttributes() 的使用

转载 作者:行者123 更新时间:2023-12-01 13:40:12 25 4
gpt4 key购买 nike

为了访问重定向方法中的重定向属性,我们利用模型的映射,如下所示:

@Controller
@RequestMapping("/foo")
public class FooController {

@RequestMapping(value = "/bar", method = RequestMethod.GET)
public ModelAndView handleGet(Model map) {
String some = (String) map.asMap().get("some");
}

@RequestMapping(value = "/bar", method = RequestMethod.POST)
public ModelAndView handlePost(RedirectAttributes redirectAttrs) {
redirectAttrs.addFlashAttributes("some", "thing");
return new ModelAndView().setViewName("redirect:/foo/bar");
}

}

但是,为什么我们不能通过这种方式访问​​它们:

      @RequestMapping(value = "/bar", method = RequestMethod.GET)
public ModelAndView handleGet(RedirectAttributes redAttr) {
String some = redAttr.getFlashAttributes().get("some");
}

如果添加 flashAttributes 的唯一目的是让它们在重定向方法中可供模型使用,那么 getFlashAttributes() 的目的是什么?

最佳答案

RedirectAttributes用于在重定向之前设置 flash 属性。它们被合并为model重定向后,因此没有理由通过 RedirectAttributes 再次访问它们再次按照您的建议。

<小时/>

能够像使用 map 一样使用属性可能会很有用。您可以检查您设置的内容( containsKeyisEmpty 、...)。但是使用通配符通用参数 Map<String, ?> getFlashAttributes()阻止写入 map ,奇怪的是为什么他们使用它而不是普通的 Object参数。

关于java - Spring 的 RedirectAttributes 中 getFlashAttributes() 的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20878389/

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