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.
RequestParamMapMethodArgumentResolver
AbstractNamedValueMethodArgumentResolver.NamedValueInfo
Constructor and Description |
---|
RequestParamMethodArgumentResolver(org.springframework.core.convert.ConversionService conversionService,
org.springframework.beans.factory.config.ConfigurableBeanFactory beanFactory,
boolean useDefaultResolution) |
Modifier and Type | Method and Description |
---|---|
protected AbstractNamedValueMethodArgumentResolver.NamedValueInfo |
createNamedValueInfo(org.springframework.core.MethodParameter parameter)
Create the
AbstractNamedValueMethodArgumentResolver.NamedValueInfo object for the given method parameter. |
protected void |
handleMissingValue(String name,
org.springframework.core.MethodParameter parameter,
org.springframework.web.server.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,
org.springframework.core.MethodParameter parameter,
org.springframework.web.server.ServerWebExchange exchange)
Resolve the given parameter type and value name into an argument value.
|
boolean |
supportsParameter(org.springframework.core.MethodParameter parameter) |
handleMissingValue, handleResolvedValue, resolveArgument
public RequestParamMethodArgumentResolver(org.springframework.core.convert.ConversionService conversionService, org.springframework.beans.factory.config.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(org.springframework.core.MethodParameter parameter)
protected AbstractNamedValueMethodArgumentResolver.NamedValueInfo createNamedValueInfo(org.springframework.core.MethodParameter parameter)
AbstractNamedValueMethodArgumentResolver
AbstractNamedValueMethodArgumentResolver.NamedValueInfo
object for the given method parameter.
Implementations typically retrieve the method annotation by means of
MethodParameter.getParameterAnnotation(Class)
.createNamedValueInfo
in class AbstractNamedValueMethodArgumentResolver
parameter
- the method parameterprotected reactor.core.publisher.Mono<Object> resolveName(String name, org.springframework.core.MethodParameter parameter, org.springframework.web.server.ServerWebExchange exchange)
AbstractNamedValueMethodArgumentResolver
resolveName
in class AbstractNamedValueMethodArgumentResolver
name
- 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, org.springframework.core.MethodParameter parameter, org.springframework.web.server.ServerWebExchange exchange)
AbstractNamedValueMethodArgumentResolver
AbstractNamedValueMethodArgumentResolver.resolveName(String, MethodParameter, ServerWebExchange)
returned
null
and there is no default value. Subclasses typically throw an
exception in this case.handleMissingValue
in class AbstractNamedValueMethodArgumentResolver
name
- the name for the valueparameter
- the method parameterexchange
- the current exchange