org.springframework.web.reactive.result.view

## Class HttpMessageWriterView

- java.lang.Object
- - org.springframework.web.reactive.result.view.HttpMessageWriterView

All Implemented Interfaces:
  View

    public class HttpMessageWriterView
    extends Object
    implements View

`View` that writes model attribute(s) with an `HttpMessageWriter`.

Since:
  5.0
Author:
  Rossen Stoyanchev

### Field Summary

### Fields inherited from interface org.springframework.web.reactive.result.view.View

`BINDING_CONTEXT_ATTRIBUTE`

### Constructor Summary

Constructors
Constructor and Description
`HttpMessageWriterView(org.springframework.core.codec.Encoder<?> encoder)` Constructor with an `Encoder`.
`HttpMessageWriterView(org.springframework.http.codec.HttpMessageWriter<?> writer)` Constructor with a fully initialized `HttpMessageWriter`.

### Method Summary

All Methods Instance Methods Concrete Methods
`org.springframework.http.codec.HttpMessageWriter<?>` `getMessageWriter()` Return the configured message writer.
`Set<String>` `getModelKeys()` Return the configured model keys.
`List<org.springframework.http.MediaType>` `getSupportedMediaTypes()` Return the list of media types this View supports, or an empty list.
`reactor.core.publisher.Mono<Void>` `render(Map<String,?> model, org.springframework.http.MediaType contentType, org.springframework.web.server.ServerWebExchange exchange)` Render the view based on the given `HandlerResult`.
`void` `setModelKeys(Set<String> modelKeys)` Set the attributes in the model that should be rendered by this view.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.springframework.web.reactive.result.view.View

`isRedirectView`

### Constructor Detail

#### HttpMessageWriterView

    public HttpMessageWriterView(org.springframework.core.codec.Encoder<?> encoder)

Constructor with an `Encoder`.

#### HttpMessageWriterView

    public HttpMessageWriterView(org.springframework.http.codec.HttpMessageWriter<?> writer)

Constructor with a fully initialized `HttpMessageWriter`.

### Method Detail

#### getMessageWriter

    public org.springframework.http.codec.HttpMessageWriter<?> getMessageWriter()

Return the configured message writer.

#### getSupportedMediaTypes

    public List<org.springframework.http.MediaType> getSupportedMediaTypes()

Return the list of media types this View supports, or an empty list.

The implementation of this method for `HttpMessageWriterView` delegates to `HttpMessageWriter.getWritableMediaTypes()`.

Specified by:
  `getSupportedMediaTypes` in interface `View`

#### setModelKeys

    public void setModelKeys(@Nullable
                             Set<String> modelKeys)

Set the attributes in the model that should be rendered by this view. When set, all other model attributes will be ignored. The matching attributes are further narrowed with `HttpMessageWriter.canWrite(org.springframework.core.ResolvableType, org.springframework.http.MediaType)`. The matching attributes are processed as follows:

- 0: nothing is written to the response body.
- 1: the matching attribute is passed to the writer.
- 2..N: if the writer supports `Map`, write all matches; otherwise raise an `IllegalStateException`.

#### getModelKeys

    public final Set<String> getModelKeys()

Return the configured model keys.

#### render

    public reactor.core.publisher.Mono<Void> render(@Nullable
                                                    Map<String,?> model,
                                                    @Nullable
                                                    org.springframework.http.MediaType contentType,
                                                    org.springframework.web.server.ServerWebExchange exchange)

Description copied from interface: `View`
Render the view based on the given `HandlerResult`. Implementations can access and use the model or only a specific attribute in it.

Specified by:
  `render` in interface `View`
Parameters:
  `model` - a Map with name Strings as keys and corresponding model objects as values (Map can also be `null` in case of empty model)
  `contentType` - the content type selected to render with which should match one of the `supported media types`.
  `exchange` - the current exchange
Returns:
  `Mono` to represent when and if rendering succeeds