首页 > 解决方案 > 当 redirectAttributes.addFlashAttribute() 在 IFRAME 中运行时 Spring FlashMap 为空

问题描述

考虑以下控制器:

@PostMapping(value = "/reg")
public String submitRegistration(
    @Valid @ModelAttribute(name = REGISTRATION_FORM) RegistrationForm registrationForm,
                                 BindingResult bindingResult,
                                 Model model,
                                 RedirectAttributes redirectAttributes) {
    var messages = new ArrayList<String>();
    // ... do something and then ...

    redirectAttributes.addFlashAttribute("messages", messages);
    return "redirect:/success";
}

@GetMapping(value = "/success")
public String showSuccess(@PathVariable String schoolUrl, Model model, HttpServletRequest request) {
    Map<String, ?> inputFlashMap = RequestContextUtils.getInputFlashMap(request);
    if (inputFlashMap != null) {
    // display messages

当从“普通”网页调用 POST 并使用消息填充上下文时,这很有效。当我在 IFRAME 中运行应用程序时,redirectAttributes 会丢失。为什么?

到今天为止,所有使用的框架都是最新的。如果这不是弹簧核心中的错误,我对 IFRAME 有什么误解?

标签: springthymeleaf

解决方案


推荐阅读