考虑以下控制器:
@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 有什么误解?