در Spring MVC در حالت عادی وقتی ما یک درخواست HTTP را redirect می کنیم تمام اطلاعات ذخیره شده در درخواست در درخواست جدید صفحه redirect شده قابل دسترسی نیست و از دست می رود. Flash Attribute ها برای حل از دست رفتن اینگونه اطلاعات در زمان redirect کردن درخواست ها کاربرد دارد.
Flash Attribute ها از نسخه 3.1 به Spring MVC اضافه شده اند و راهی برای ذخیره اطلاعات درون یک درخواست و بدست آوردن آن اطلاعات پس از redirect کردن آن درخواست است، Flash Attribute های بصورت موقتی در session ذخیره می شوند و بعد از redirect شدن درخواست در دسترس هستند و پس از آن نیز به سرعت از بین می روند:
@RequestMapping(value="addcustomer", method=RequestMethod.POST)
public String addCustomer(@ModelAttribute("customer") Customer customer,
final RedirectAttributes redirectAttributes) {
redirectAttributes.addFlashAttribute("customer", customer);
redirectAttributes.addFlashAttribute("message","Added successfully.");
return "redirect:showcustomer.html";
}
@RequestMapping(value="showcustomer", method=RequestMethod.GET)
public String showCustomer(@ModelAttribute("customer") Customer customer) {
System.out.println("cust:" + customer.getFirstname());
return "show_customer";
}