org.springframework.web.reactive.result.view

## Class RequestContext

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

    public class RequestContext
    extends Object

Context holder for request-specific state, like the `MessageSource` to use, current locale, binding errors, etc. Provides easy access to localized messages and Errors instances.

Suitable for exposition to views, and usage within FreeMarker templates and tag libraries.

Can be instantiated manually or automatically exposed to views as a model attribute via AbstractView's "requestContextAttribute" property.

Since:
  5.0
Author:
  Rossen Stoyanchev

### Constructor Summary

Constructors
Constructor and Description
`RequestContext(org.springframework.web.server.ServerWebExchange exchange, Map<String,Object> model, org.springframework.context.MessageSource messageSource)`
`RequestContext(org.springframework.web.server.ServerWebExchange exchange, Map<String,Object> model, org.springframework.context.MessageSource messageSource, RequestDataValueProcessor dataValueProcessor)`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `changeLocale(Locale locale)` Change the current locale to the specified one.
`void` `changeLocale(Locale locale, TimeZone timeZone)` Change the current locale to the specified locale and time zone context.
`BindStatus` `getBindStatus(String path)` Create a BindStatus for the given bind object using the "defaultHtmlEscape" setting.
`BindStatus` `getBindStatus(String path, boolean htmlEscape)` Create a BindStatus for the given bind object, using the "defaultHtmlEscape" setting.
`String` `getContextPath()` Return the context path of the current web application.
`String` `getContextUrl(String relativeUrl)` Return a context-aware URl for the given relative URL.
`String` `getContextUrl(String relativeUrl, Map<String,?> params)` Return a context-aware URl for the given relative URL with placeholders -- named keys with braces `{}`.
`Boolean` `getDefaultHtmlEscape()` Return the default HTML escape setting, differentiating between no default specified and an explicit value.
`org.springframework.validation.Errors` `getErrors(String name)` Retrieve the Errors instance for the given bind object, using the "defaultHtmlEscape" setting.
`org.springframework.validation.Errors` `getErrors(String name, boolean htmlEscape)` Retrieve the Errors instance for the given bind object.
`protected org.springframework.web.server.ServerWebExchange` `getExchange()`
`Locale` `getLocale()` Return the current Locale.
`String` `getMessage(org.springframework.context.MessageSourceResolvable resolvable)` Retrieve the given MessageSourceResolvable (e.g.
`String` `getMessage(org.springframework.context.MessageSourceResolvable resolvable, boolean htmlEscape)` Retrieve the given MessageSourceResolvable (e.g.
`String` `getMessage(String code)` Retrieve the message for the given code, using the "defaultHtmlEscape" setting.
`String` `getMessage(String code, List<?> args)` Retrieve the message for the given code, using the "defaultHtmlEscape" setting.
`String` `getMessage(String code, List<?> args, String defaultMessage)` Retrieve the message for the given code, using the "defaultHtmlEscape" setting.
`String` `getMessage(String code, Object[] args)` Retrieve the message for the given code, using the "defaultHtmlEscape" setting.
`String` `getMessage(String code, Object[] args, boolean htmlEscape)` Retrieve the message for the given code.
`String` `getMessage(String code, Object[] args, String defaultMessage)` Retrieve the message for the given code, using the "defaultHtmlEscape" setting.
`String` `getMessage(String code, Object[] args, String defaultMessage, boolean htmlEscape)` Retrieve the message for the given code.
`String` `getMessage(String code, String defaultMessage)` Retrieve the message for the given code, using the "defaultHtmlEscape" setting.
`org.springframework.context.MessageSource` `getMessageSource()` Return the MessageSource in use with this request.
`Map<String,Object>` `getModel()` Return the model Map that this RequestContext encapsulates, if any.
`protected <T> T` `getModelObject(String modelName)` Retrieve the model object for the given model name, either from the model or from the request attributes.
`String` `getQueryString()` Return the query string of the current request.
`RequestDataValueProcessor` `getRequestDataValueProcessor()` Return the `RequestDataValueProcessor` instance to apply to in form tag libraries and to redirect URLs.
`String` `getRequestPath()` Return the request path of the request.
`TimeZone` `getTimeZone()` Return the current TimeZone.
`boolean` `isDefaultHtmlEscape()` Is default HTML escaping active? Falls back to `false` in case of no explicit default given.
`void` `setDefaultHtmlEscape(boolean defaultHtmlEscape)` (De)activate default HTML escaping for messages and errors, for the scope of this RequestContext.

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

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

### Constructor Detail

#### RequestContext

    public RequestContext(org.springframework.web.server.ServerWebExchange exchange,
                          Map<String,Object> model,
                          org.springframework.context.MessageSource messageSource)

#### RequestContext

    public RequestContext(org.springframework.web.server.ServerWebExchange exchange,
                          Map<String,Object> model,
                          org.springframework.context.MessageSource messageSource,
                          @Nullable
                          RequestDataValueProcessor dataValueProcessor)

### Method Detail

#### getExchange

    protected final org.springframework.web.server.ServerWebExchange getExchange()

#### getMessageSource

    public org.springframework.context.MessageSource getMessageSource()

Return the MessageSource in use with this request.

#### getModel

    @Nullable
    public Map<String,Object> getModel()

Return the model Map that this RequestContext encapsulates, if any.

Returns:
  the populated model Map, or `null` if none available

#### getLocale

    public final Locale getLocale()

Return the current Locale.

#### getTimeZone

    public TimeZone getTimeZone()

Return the current TimeZone.

#### changeLocale

    public void changeLocale(Locale locale)

Change the current locale to the specified one.

#### changeLocale

    public void changeLocale(Locale locale,
                             TimeZone timeZone)

Change the current locale to the specified locale and time zone context.

#### setDefaultHtmlEscape

    public void setDefaultHtmlEscape(boolean defaultHtmlEscape)

(De)activate default HTML escaping for messages and errors, for the scope of this RequestContext.

TODO: currently no application-wide setting ...

#### isDefaultHtmlEscape

    public boolean isDefaultHtmlEscape()

Is default HTML escaping active? Falls back to `false` in case of no explicit default given.

#### getDefaultHtmlEscape

    @Nullable
    public Boolean getDefaultHtmlEscape()

Return the default HTML escape setting, differentiating between no default specified and an explicit value.

Returns:
  whether default HTML escaping is enabled (null = no explicit default)

#### getRequestDataValueProcessor

    @Nullable
    public RequestDataValueProcessor getRequestDataValueProcessor()

Return the `RequestDataValueProcessor` instance to apply to in form tag libraries and to redirect URLs.

#### getContextPath

    public String getContextPath()

Return the context path of the current web application. This is useful for building links to other resources within the application.

Delegates to `ServerHttpRequest.getPath()`.

#### getContextUrl

    public String getContextUrl(String relativeUrl)

Return a context-aware URl for the given relative URL.

Parameters:
  `relativeUrl` - the relative URL part
Returns:
  a URL that points back to the current web application with an absolute path also URL-encoded accordingly

#### getContextUrl

    public String getContextUrl(String relativeUrl,
                                Map<String,?> params)

Return a context-aware URl for the given relative URL with placeholders -- named keys with braces `{}`. For example, send in a relative URL `foo/{bar}?spam={spam}` and a parameter map `{bar=baz,spam=nuts}` and the result will be `[contextpath]/foo/baz?spam=nuts`.

Parameters:
  `relativeUrl` - the relative URL part
  `params` - a map of parameters to insert as placeholders in the url
Returns:
  a URL that points back to the current web application with an absolute path also URL-encoded accordingly

#### getRequestPath

    public String getRequestPath()

Return the request path of the request. This is useful as HTML form action target, also in combination with the original query string.

#### getQueryString

    public String getQueryString()

Return the query string of the current request. This is useful for building an HTML form action target in combination with the original request path.

#### getMessage

    public String getMessage(String code,
                             String defaultMessage)

Retrieve the message for the given code, using the "defaultHtmlEscape" setting.

Parameters:
  `code` - the code of the message
  `defaultMessage` - the String to return if the lookup fails
Returns:
  the message

#### getMessage

    public String getMessage(String code,
                             @Nullable
                             Object[] args,
                             String defaultMessage)

Retrieve the message for the given code, using the "defaultHtmlEscape" setting.

Parameters:
  `code` - the code of the message
  `args` - arguments for the message, or `null` if none
  `defaultMessage` - the String to return if the lookup fails
Returns:
  the message

#### getMessage

    public String getMessage(String code,
                             @Nullable
                             List<?> args,
                             String defaultMessage)

Retrieve the message for the given code, using the "defaultHtmlEscape" setting.

Parameters:
  `code` - the code of the message
  `args` - arguments for the message as a List, or `null` if none
  `defaultMessage` - the String to return if the lookup fails
Returns:
  the message

#### getMessage

    public String getMessage(String code,
                             @Nullable
                             Object[] args,
                             String defaultMessage,
                             boolean htmlEscape)

Retrieve the message for the given code.

Parameters:
  `code` - the code of the message
  `args` - arguments for the message, or `null` if none
  `defaultMessage` - the String to return if the lookup fails
  `htmlEscape` - if the message should be HTML-escaped
Returns:
  the message

#### getMessage

    public String getMessage(String code)
                      throws org.springframework.context.NoSuchMessageException

Retrieve the message for the given code, using the "defaultHtmlEscape" setting.

Parameters:
  `code` - the code of the message
Returns:
  the message
Throws:
  `org.springframework.context.NoSuchMessageException` - if not found

#### getMessage

    public String getMessage(String code,
                             @Nullable
                             Object[] args)
                      throws org.springframework.context.NoSuchMessageException

Retrieve the message for the given code, using the "defaultHtmlEscape" setting.

Parameters:
  `code` - the code of the message
  `args` - arguments for the message, or `null` if none
Returns:
  the message
Throws:
  `org.springframework.context.NoSuchMessageException` - if not found

#### getMessage

    public String getMessage(String code,
                             @Nullable
                             List<?> args)
                      throws org.springframework.context.NoSuchMessageException

Retrieve the message for the given code, using the "defaultHtmlEscape" setting.

Parameters:
  `code` - the code of the message
  `args` - arguments for the message as a List, or `null` if none
Returns:
  the message
Throws:
  `org.springframework.context.NoSuchMessageException` - if not found

#### getMessage

    public String getMessage(String code,
                             @Nullable
                             Object[] args,
                             boolean htmlEscape)
                      throws org.springframework.context.NoSuchMessageException

Retrieve the message for the given code.

Parameters:
  `code` - the code of the message
  `args` - arguments for the message, or `null` if none
  `htmlEscape` - if the message should be HTML-escaped
Returns:
  the message
Throws:
  `org.springframework.context.NoSuchMessageException` - if not found

#### getMessage

    public String getMessage(org.springframework.context.MessageSourceResolvable resolvable)
                      throws org.springframework.context.NoSuchMessageException

Retrieve the given MessageSourceResolvable (e.g. an ObjectError instance), using the "defaultHtmlEscape" setting.

Parameters:
  `resolvable` - the MessageSourceResolvable
Returns:
  the message
Throws:
  `org.springframework.context.NoSuchMessageException` - if not found

#### getMessage

    public String getMessage(org.springframework.context.MessageSourceResolvable resolvable,
                             boolean htmlEscape)
                      throws org.springframework.context.NoSuchMessageException

Retrieve the given MessageSourceResolvable (e.g. an ObjectError instance).

Parameters:
  `resolvable` - the MessageSourceResolvable
  `htmlEscape` - if the message should be HTML-escaped
Returns:
  the message
Throws:
  `org.springframework.context.NoSuchMessageException` - if not found

#### getErrors

    @Nullable
    public org.springframework.validation.Errors getErrors(String name)

Retrieve the Errors instance for the given bind object, using the "defaultHtmlEscape" setting.

Parameters:
  `name` - the name of the bind object
Returns:
  the Errors instance, or `null` if not found

#### getErrors

    @Nullable
    public org.springframework.validation.Errors getErrors(String name,
                                                                     boolean htmlEscape)

Retrieve the Errors instance for the given bind object.

Parameters:
  `name` - the name of the bind object
  `htmlEscape` - create an Errors instance with automatic HTML escaping?
Returns:
  the Errors instance, or `null` if not found

#### getModelObject

    @Nullable
    protected <T> T getModelObject(String modelName)

Retrieve the model object for the given model name, either from the model or from the request attributes.

Parameters:
  `modelName` - the name of the model object
Returns:
  the model object

#### getBindStatus

    public BindStatus getBindStatus(String path)
                             throws IllegalStateException

Create a BindStatus for the given bind object using the "defaultHtmlEscape" setting.

Parameters:
  `path` - the bean and property path for which values and errors will be resolved (e.g. "person.age")
Returns:
  the new BindStatus instance
Throws:
  `IllegalStateException` - if no corresponding Errors object found

#### getBindStatus

    public BindStatus getBindStatus(String path,
                                    boolean htmlEscape)
                             throws IllegalStateException

Create a BindStatus for the given bind object, using the "defaultHtmlEscape" setting.

Parameters:
  `path` - the bean and property path for which values and errors will be resolved (e.g. "person.age")
  `htmlEscape` - create a BindStatus with automatic HTML escaping?
Returns:
  the new BindStatus instance
Throws:
  `IllegalStateException` - if no corresponding Errors object found