public class RequestParamMethodArgumentResolver extends AbstractNamedValueMethodArgumentResolver
RequestParam.
This resolver can also be created in default resolution mode in which
simple types (int, long, etc.) not annotated with @RequestParam are
also treated as request parameters with the parameter name derived from the
argument name.
If the method parameter type is Map, the name specified in the
annotation is used to resolve the request parameter String value. The value is
then converted to a Map via type conversion assuming a suitable
Converter has been registered. Or if a request parameter name is not
specified the RequestParamMapMethodArgumentResolver is used instead
to provide access to all request parameters in the form of a map.
RequestParamMapMethodArgumentResolverAbstractNamedValueMethodArgumentResolver.NamedValueInfo| Constructor and Description |
|---|
RequestParamMethodArgumentResolver(ConversionService conversionService,
ConfigurableBeanFactory beanFactory,
boolean useDefaultResolution) |
| Modifier and Type | Method and Description |
|---|---|
protected AbstractNamedValueMethodArgumentResolver.NamedValueInfo |
createNamedValueInfo(MethodParameter parameter)
Create the
AbstractNamedValueMethodArgumentResolver.NamedValueInfo object for the given method parameter. |
protected void |
handleMissingValue(String name,
MethodParameter parameter,
ServerWebExchange exchange)
Invoked when a named value is required, but
AbstractNamedValueMethodArgumentResolver.resolveName(String, MethodParameter, ServerWebExchange) returned
null and there is no default value. |
protected reactor.core.publisher.Mono<Object> |
resolveName(String name,
MethodParameter parameter,
ServerWebExchange exchange)
Resolve the given parameter type and value name into an argument value.
|
boolean |
supportsParameter(MethodParameter parameter) |
handleMissingValue, handleResolvedValue, resolveArgumentpublic RequestParamMethodArgumentResolver(ConversionService conversionService, ConfigurableBeanFactory beanFactory, boolean useDefaultResolution)
conversionService - for type conversion (to be replaced with WebDataBinder)beanFactory - a bean factory used for resolving ${...} placeholder
and #{...} SpEL expressions in default values, or null if default
values are not expected to contain expressionsuseDefaultResolution - in default resolution mode a method argument
that is a simple type, as defined in BeanUtils.isSimpleProperty(java.lang.Class<?>),
is treated as a request parameter even if it isn't annotated, the
request parameter name is derived from the method parameter name.public boolean supportsParameter(MethodParameter parameter)
protected AbstractNamedValueMethodArgumentResolver.NamedValueInfo createNamedValueInfo(MethodParameter parameter)
AbstractNamedValueMethodArgumentResolverAbstractNamedValueMethodArgumentResolver.NamedValueInfo object for the given method parameter.
Implementations typically retrieve the method annotation by means of
MethodParameter.getParameterAnnotation(Class).createNamedValueInfo in class AbstractNamedValueMethodArgumentResolverparameter - the method parameterprotected reactor.core.publisher.Mono<Object> resolveName(String name, MethodParameter parameter, ServerWebExchange exchange)
AbstractNamedValueMethodArgumentResolverresolveName in class AbstractNamedValueMethodArgumentResolvername - the name of the value being resolvedparameter - the method parameter to resolve to an argument value
(pre-nested in case of a Optional declaration)exchange - the current exchangenull)protected void handleMissingValue(String name, MethodParameter parameter, ServerWebExchange exchange)
AbstractNamedValueMethodArgumentResolverAbstractNamedValueMethodArgumentResolver.resolveName(String, MethodParameter, ServerWebExchange) returned
null and there is no default value. Subclasses typically throw an
exception in this case.handleMissingValue in class AbstractNamedValueMethodArgumentResolvername - the name for the valueparameter - the method parameterexchange - the current exchange