Overview | Package | Class | Tree | Deprecated | Index | Help
| Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.springframework.web.servlet.mvc.support
Interface RedirectAttributes

All Superinterfaces:
  Model

All Known Implementing Classes:
  RedirectAttributesModelMap

    public interface RedirectAttributes

extends Model

A specialization of the `Model` interface that controllers can use to select attributes for a redirect scenario. Since the intent of adding redirect attributes is very explicit -- i.e. to be used for a redirect URL, attribute values may be formatted as Strings and stored that way to make them eligible to be appended to the query string or expanded as URI variables in `org.springframework.web.servlet.view.RedirectView`.

This interface also provides a way to add flash attributes. For a general overview of flash attributes see `FlashMap`. You can use `RedirectAttributes` to store flash attributes and they will be automatically propagated to the "output" FlashMap of the current request.

Example usage in an `@Controller`:

     @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}";
     }

A RedirectAttributes model is empty when the method is called and is never used unless the method returns a redirect view name or a RedirectView.

After the redirect, flash attributes are automatically added to the model of the controller that serves the target URL.

Since:
  3.1
Author:
  Rossen Stoyanchev

Method Summary
`RedirectAttributes` | `addAllAttributes(java.util.Collection<?> attributeValues)` Copy all attributes in the supplied `Collection` into this `Map`, using attribute name generation for each element.
`RedirectAttributes` | `addAttribute(java.lang.Object attributeValue)` Add the supplied attribute to this `Map` using a `generated name`.
`RedirectAttributes` | `addAttribute(java.lang.String attributeName, java.lang.Object attributeValue)` Add the supplied attribute under the supplied name.
`RedirectAttributes` | `addFlashAttribute(java.lang.Object attributeValue)` Add the given flash storage using a `generated name`.
`RedirectAttributes` | `addFlashAttribute(java.lang.String attributeName, java.lang.Object attributeValue)` Add the given flash attribute.
`java.util.Map<java.lang.String,?>` | `getFlashAttributes()` Return the attributes candidate for flash storage or an empty Map.
`RedirectAttributes` | `mergeAttributes(java.util.Map<java.lang.String,?> attributes)` Copy all attributes in the supplied `Map` into this `Map`, with existing objects of the same name taking precedence (i.e.

Methods inherited from interface org.springframework.ui.Model
`addAllAttributes, asMap, containsAttribute`

Method Detail

### addAttribute

    RedirectAttributes addAttribute(java.lang.String attributeName,
                                    java.lang.Object attributeValue)

  Description copied from interface: `Model`
  Add the supplied attribute under the supplied name.

  Specified by:
    `addAttribute` in interface `Model`
  Parameters:
    `attributeName` - the name of the model attribute (never `null`)
    `attributeValue` - the model attribute value (can be `null`)

### addAttribute

    RedirectAttributes addAttribute(java.lang.Object attributeValue)

  Description copied from interface: `Model`
  Add the supplied attribute to this `Map` using a `generated name`.

  Note: Empty `Collections` are not added to the model when using this method because we cannot correctly determine the true convention name. View code should check for `null` rather than for empty collections as is already done by JSTL tags.

  Specified by:
    `addAttribute` in interface `Model`
  Parameters:
    `attributeValue` - the model attribute value (never `null`)

### addAllAttributes

    RedirectAttributes addAllAttributes(java.util.Collection<?> attributeValues)

  Description copied from interface: `Model`
  Copy all attributes in the supplied `Collection` into this `Map`, using attribute name generation for each element.

  Specified by:
    `addAllAttributes` in interface `Model`
  See Also:
    `Model.addAttribute(Object)`

### mergeAttributes

    RedirectAttributes mergeAttributes(java.util.Map<java.lang.String,?> attributes)

  Description copied from interface: `Model`
  Copy all attributes in the supplied `Map` into this `Map`, with existing objects of the same name taking precedence (i.e. not getting replaced).

  Specified by:
    `mergeAttributes` in interface `Model`

### addFlashAttribute

    RedirectAttributes addFlashAttribute(java.lang.String attributeName,
                                         java.lang.Object attributeValue)

  Add the given flash attribute.

  Parameters:
    `attributeName` - the attribute name; never `null`
    `attributeValue` - the attribute value; may be `null`

### addFlashAttribute

    RedirectAttributes addFlashAttribute(java.lang.Object attributeValue)

  Add the given flash storage using a `generated name`.

  Parameters:
    `attributeValue` - the flash attribute value; never `null`

### getFlashAttributes

    java.util.Map<java.lang.String,?> getFlashAttributes()

  Return the attributes candidate for flash storage or an empty Map.

Overview | Package | Class | Tree | Deprecated | Index | Help
| Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD