public class MatrixVariableMethodArgumentResolver extends AbstractNamedValueMethodArgumentResolver
@MatrixVariable
.
If the method parameter is of type Map
it will by resolved by
MatrixVariableMapMethodArgumentResolver
instead unless the annotation
specifies a name in which case it is considered to be a single attribute of
type map (vs multiple attributes collected in a map).
AbstractNamedValueMethodArgumentResolver.NamedValueInfo
Constructor and Description |
---|
MatrixVariableMethodArgumentResolver() |
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)
Invoked when a named value is required, but
AbstractNamedValueMethodArgumentResolver.resolveName(String, MethodParameter, NativeWebRequest)
returned null and there is no default value. |
protected void |
handleMissingValueAfterConversion(String name,
MethodParameter parameter,
NativeWebRequest request)
Invoked when a named value is present but becomes
null after conversion. |
protected Object |
resolveName(String name,
MethodParameter parameter,
NativeWebRequest request)
Resolve the given parameter type and value name into an argument value.
|
boolean |
supportsParameter(MethodParameter parameter)
Whether the given method parameter is
supported by this resolver.
|
handleMissingValue, handleResolvedValue, resolveArgument
public MatrixVariableMethodArgumentResolver()
public boolean supportsParameter(MethodParameter parameter)
HandlerMethodArgumentResolver
parameter
- the method parameter to checktrue
if this resolver supports the supplied parameter;
false
otherwiseprotected AbstractNamedValueMethodArgumentResolver.NamedValueInfo createNamedValueInfo(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 parameter@Nullable protected Object resolveName(String name, MethodParameter parameter, NativeWebRequest request) throws Exception
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)request
- the current requestnull
)Exception
- in case of errorsprotected void handleMissingValue(String name, MethodParameter parameter) throws ServletRequestBindingException
AbstractNamedValueMethodArgumentResolver
AbstractNamedValueMethodArgumentResolver.resolveName(String, MethodParameter, NativeWebRequest)
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 parameterServletRequestBindingException
protected void handleMissingValueAfterConversion(String name, MethodParameter parameter, NativeWebRequest request) throws Exception
AbstractNamedValueMethodArgumentResolver
null
after conversion.handleMissingValueAfterConversion
in class AbstractNamedValueMethodArgumentResolver
name
- the name for the valueparameter
- the method parameterrequest
- the current requestException