Bạn có nhìn vào số RedirectAttributes của Spring không? Tôi đã không sử dụng nó bản thân mình, nhưng nó có vẻ như nó nên làm những gì bạn muốn. Các thuộc tính RedirectAttributes thường được sử dụng cho các mẫu GET/redirect/POST và at least one user dường như nghĩ rằng các thuộc tính session truyền qua theo cách này là thực hành không tốt, tuy nhiên chúng tiếp tục đề cập đến dường như không có giải pháp nào tốt hơn. Dù sao, ví dụ trình bày trong tài liệu hướng dẫn:
@RequestMapping(value = "/accounts", method = RequestMethod.POST)
public String handle(Account account, BindingResult result, RedirectAttributes redirectAttrs) {
if (result.hasErrors()) {
return "accounts/new";
}
// Save account ...
redirectAttrs.addAttribute("id", account.getId()).addFlashAttribute("message", "Account created!");
return "redirect:/accounts/{id}";
}
sẽ làm tăng thêm những "thông điệp" thuộc tính đến một RedirectModel, và nếu điều khiển của bạn chuyển hướng, sau đó bất cứ phương pháp xử lý chuyển hướng thể truy cập dữ liệu như vậy:
@RequestMapping(value = "/accounts", method = RequestMethod.POST)
public String handleRedirect(Model model) {
String message = (String) model.asMap().get("message");
return new ModelAndView();
}
Vì vậy, việc thêm thuộc tính phiên phải có thể theo cùng một cách. Tham chiếu khác here.
EDIT Tôi đã xem qua tài liệu Spring và họ cũng đề cập đến chú thích này @SessionAttributes. Từ tài liệu:
Chú thích loại @SessionAttributes tuyên bố thuộc tính phiên được sử dụng bởi trình xử lý cụ thể. Điều này thường sẽ liệt kê tên của các thuộc tính mô hình hoặc các kiểu thuộc tính mô hình cần được lưu trữ trong suốt trong phiên hoặc một số lưu trữ đàm thoại, phục vụ như là bean sao lưu mẫu giữa các yêu cầu tiếp theo.
Đây có phải là những gì bạn cần không?
Và cũng có thể a link to documentation on flash attributes.
Vấn đề chính của redirectAttributes là tôi cần phải đặt tất cả các biến trong các thuộc tính riêng biệt nếu chúng không ở dạng html. – Raider