public class ModelAttributeMethodArgumentResolver extends HandlerMethodArgumentResolverSupport
@ModelAttribute
annotated method arguments.
Model attributes are sourced from the model, or created using a default
constructor and then added to the model. Once created the attribute is
populated via data binding to the request (form data, query params).
Validation also may be applied if the argument is annotated with
@javax.validation.Valid
or Spring's own
@org.springframework.validation.annotation.Validated
.
When this handler is created with useDefaultResolution=true
any non-simple type argument and return value is regarded as a model
attribute with or without the presence of an @ModelAttribute
.
logger
Constructor and Description |
---|
ModelAttributeMethodArgumentResolver(ReactiveAdapterRegistry adapterRegistry,
boolean useDefaultResolution)
Class constructor with a default resolution mode flag.
|
Modifier and Type | Method and Description |
---|---|
protected reactor.core.publisher.Mono<Void> |
bindRequestParameters(WebExchangeDataBinder binder,
ServerWebExchange exchange)
Extension point to bind the request to the target object.
|
reactor.core.publisher.Mono<Object> |
resolveArgument(MethodParameter parameter,
BindingContext context,
ServerWebExchange exchange)
Resolve the value for the method parameter.
|
boolean |
supportsParameter(MethodParameter parameter)
Whether this resolver supports the given method parameter.
|
checkAnnotatedParamNoReactiveWrapper, checkParameterType, checkParameterTypeNoReactiveWrapper, getAdapterRegistry
public ModelAttributeMethodArgumentResolver(ReactiveAdapterRegistry adapterRegistry, boolean useDefaultResolution)
adapterRegistry
- for adapting to other reactive types from and to MonouseDefaultResolution
- if "true", non-simple method arguments and
return values are considered model attributes with or without a
@ModelAttribute
annotation present.public boolean supportsParameter(MethodParameter parameter)
HandlerMethodArgumentResolver
parameter
- the method parameterpublic reactor.core.publisher.Mono<Object> resolveArgument(MethodParameter parameter, BindingContext context, ServerWebExchange exchange)
HandlerMethodArgumentResolver
parameter
- the method parametercontext
- the binding context to useexchange
- the current exchangeMono
for the argument value, possibly emptyprotected reactor.core.publisher.Mono<Void> bindRequestParameters(WebExchangeDataBinder binder, ServerWebExchange exchange)
binder
- the data binder instance to use for the bindingexchange
- the current request