public class PathVariableMethodArgumentResolver extends AbstractNamedValueSyncArgumentResolver
PathVariable
.
An @PathVariable
is a named value that gets resolved from a URI
template variable. It is always required and does not have a default value
to fall back on. See the base class
AbstractNamedValueMethodArgumentResolver
for more information on how named values are processed.
If the method parameter type is Map
, the name specified in the
annotation is used to resolve the URI variable String value. The value is
then converted to a Map
via type conversion, assuming a suitable
Converter
.
PathVariableMapMethodArgumentResolver
Modifier and Type | Class and Description |
---|---|
private static class |
PathVariableMethodArgumentResolver.PathVariableNamedValueInfo |
AbstractNamedValueArgumentResolver.NamedValueInfo
Constructor and Description |
---|
PathVariableMethodArgumentResolver(ConfigurableBeanFactory beanFactory) |
Modifier and Type | Method and Description |
---|---|
protected AbstractNamedValueArgumentResolver.NamedValueInfo |
createNamedValueInfo(MethodParameter parameter)
Create the
AbstractNamedValueArgumentResolver.NamedValueInfo object for the given method parameter. |
protected void |
handleMissingValue(java.lang.String name,
MethodParameter parameter)
Invoked when a named value is required, but
AbstractNamedValueArgumentResolver.resolveName(String, MethodParameter, ServerWebExchange) returned
null and there is no default value. |
protected void |
handleResolvedValue(java.lang.Object arg,
java.lang.String name,
MethodParameter parameter,
Model model,
ServerWebExchange exchange)
Invoked after a value is resolved.
|
protected java.util.Optional<java.lang.Object> |
resolveNamedValue(java.lang.String name,
MethodParameter parameter,
ServerWebExchange exchange)
An abstract method for synchronous resolution of method argument values
that sub-classes must implement.
|
boolean |
supportsParameter(MethodParameter parameter) |
resolveArgumentValue, resolveName
handleMissingValue, resolveArgument
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
resolveArgument
public PathVariableMethodArgumentResolver(ConfigurableBeanFactory beanFactory)
public boolean supportsParameter(MethodParameter parameter)
protected AbstractNamedValueArgumentResolver.NamedValueInfo createNamedValueInfo(MethodParameter parameter)
AbstractNamedValueArgumentResolver
AbstractNamedValueArgumentResolver.NamedValueInfo
object for the given method parameter.
Implementations typically retrieve the method annotation by means of
MethodParameter.getParameterAnnotation(Class)
.createNamedValueInfo
in class AbstractNamedValueArgumentResolver
parameter
- the method parameterprotected java.util.Optional<java.lang.Object> resolveNamedValue(java.lang.String name, MethodParameter parameter, ServerWebExchange exchange)
AbstractNamedValueSyncArgumentResolver
resolveNamedValue
in class AbstractNamedValueSyncArgumentResolver
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 exchangeprotected void handleMissingValue(java.lang.String name, MethodParameter parameter)
AbstractNamedValueArgumentResolver
AbstractNamedValueArgumentResolver.resolveName(String, MethodParameter, ServerWebExchange)
returned
null
and there is no default value. Subclasses typically throw an
exception in this case.handleMissingValue
in class AbstractNamedValueArgumentResolver
name
- the name for the valueparameter
- the method parameterprotected void handleResolvedValue(java.lang.Object arg, java.lang.String name, MethodParameter parameter, Model model, ServerWebExchange exchange)
AbstractNamedValueArgumentResolver
handleResolvedValue
in class AbstractNamedValueArgumentResolver
arg
- the resolved argument valuename
- the argument nameparameter
- the argument parameter typemodel
- the modelexchange
- the current exchange