当我使用addFlashAttribute时,如何从POST请求中保存数据?
@GetMapping("/collage")
public String paintPicture(@ModelAttribute(value="picture") String img){
//How to hold 'img' here?
//When I send GET I want to see the image again (not only after the redirect).
return "collage";
}
@PostMapping(value="/sending")
public String redirect(@RequestParam(value="image") MultipartFile img, RedirectAttributes redirectAttr) throws IOException {
String imgAsBase64 = Base64.encodeBase64String(img.getBytes());
redirectAttr.addFlashAttribute("picture",imgAsBase64);
return "redirect:/collage";
}
答案 0 :(得分:0)
RequestMappingHandlerAdapter
将FlashMap
(包含flash变量)存储为请求属性。重定向后,会有一个全新的请求,因此Flash变量将丢失。似乎闪存变量在这里不起作用。
您可以改用会话:
session.setAttribute("picture", imgAsBase64);
然后
String imgAsBase64 = (String) session.getAttribute("picture");