All Known Implementing Classes:
AbstractUrlBasedView, AbstractView, FreeMarkerView, HttpMessageWriterView, RedirectView, ScriptTemplateView

public interface View
Contract to render HandlerResult to the HTTP response.

In contrast to an Encoder which is a singleton and encodes any object of a given type, a View is typically selected by name and resolved using a ViewResolver which may for example match it to an HTML template. Furthermore a View may render based on multiple attributes contained in the model.

A View can also choose to select an attribute from the model use any existing Encoder to render alternate media types.

Since:
5.0
Author:
Rossen Stoyanchev
  • Field Details

    • BINDING_CONTEXT_ATTRIBUTE

      static final String BINDING_CONTEXT_ATTRIBUTE
      The name of the exchange attribute that contains the BindingContext for the request which can be used to create BindingResult instances for objects in to the model.

      Note: This attribute is not required and may not be present.

      Since:
      5.1.8
  • Method Details

    • getSupportedMediaTypes

      default List<MediaType> getSupportedMediaTypes()
      Return the list of media types this View supports, or an empty list.
    • isRedirectView

      default boolean isRedirectView()
      Whether this View does rendering by performing a redirect.
    • render

      reactor.core.publisher.Mono<Void> render(@Nullable Map<String,?> model, @Nullable MediaType contentType, ServerWebExchange exchange)
      Render the view based on the given HandlerResult. Implementations can access and use the model or only a specific attribute in it.
      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