With `RedirectAttributes`, you can pass almost any data to the redirect URL:
@RequestMapping(value="/someURL", method=GET)
public String yourMethod(RedirectAttributes redirectAttributes)
{
...
redirectAttributes.addAttribute("rd", "rdValue");
redirectAttributes.addFlashAttribute("fa", faValue);
return "redirect:/someOtherURL";
}
When you use `addAttribute` to add attributes, this will end up in the target redirect URL. These attributes are used to construct the request parameters and the client (browser) will send a new request to the `redirect URL` with these parameters. With this, you are limited to use String or primitives as your redirect attributes.
And when you use `addFlashAttribute`, these attributes are saved temporarily before the redirect (typically in the session) and are available to the request after the redirect and removed immediately. The advantage of using `flashAttributes` is that, you can add any object as a flash attribute (as it is stored in session).