org.springframework.web.servlet.mvc.method.annotation
Class PathVariableMethodArgumentResolver
java.lang.Object
org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver
org.springframework.web.servlet.mvc.method.annotation.PathVariableMethodArgumentResolver
- All Implemented Interfaces:
- org.springframework.web.method.support.HandlerMethodArgumentResolver
public class PathVariableMethodArgumentResolver
- extends org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver
Resolves method arguments annotated with an @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
or PropertyEditor
has been registered.
Or if the annotation does not specify name the
RequestParamMapMethodArgumentResolver
is used instead to provide
access to all URI variables in a map.
A WebDataBinder
is invoked to apply type conversion to resolved path variable values that
don't yet match the method parameter type.
- Since:
- 3.1
- Author:
- Rossen Stoyanchev, Arjen Poutsma
Nested classes/interfaces inherited from class org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver |
org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.NamedValueInfo |
Method Summary |
protected org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.NamedValueInfo |
createNamedValueInfo(org.springframework.core.MethodParameter parameter)
|
protected void |
handleMissingValue(java.lang.String name,
org.springframework.core.MethodParameter param)
|
protected void |
handleResolvedValue(java.lang.Object arg,
java.lang.String name,
org.springframework.core.MethodParameter parameter,
org.springframework.web.method.support.ModelAndViewContainer mavContainer,
org.springframework.web.context.request.NativeWebRequest request)
|
protected java.lang.Object |
resolveName(java.lang.String name,
org.springframework.core.MethodParameter parameter,
org.springframework.web.context.request.NativeWebRequest request)
|
boolean |
supportsParameter(org.springframework.core.MethodParameter parameter)
|
Methods inherited from class org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver |
resolveArgument |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
PathVariableMethodArgumentResolver
public PathVariableMethodArgumentResolver()
supportsParameter
public boolean supportsParameter(org.springframework.core.MethodParameter parameter)
createNamedValueInfo
protected org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.NamedValueInfo createNamedValueInfo(org.springframework.core.MethodParameter parameter)
- Specified by:
createNamedValueInfo
in class org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver
resolveName
protected java.lang.Object resolveName(java.lang.String name,
org.springframework.core.MethodParameter parameter,
org.springframework.web.context.request.NativeWebRequest request)
throws java.lang.Exception
- Specified by:
resolveName
in class org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver
- Throws:
java.lang.Exception
handleMissingValue
protected void handleMissingValue(java.lang.String name,
org.springframework.core.MethodParameter param)
throws org.springframework.web.bind.ServletRequestBindingException
- Specified by:
handleMissingValue
in class org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver
- Throws:
org.springframework.web.bind.ServletRequestBindingException
handleResolvedValue
protected void handleResolvedValue(java.lang.Object arg,
java.lang.String name,
org.springframework.core.MethodParameter parameter,
org.springframework.web.method.support.ModelAndViewContainer mavContainer,
org.springframework.web.context.request.NativeWebRequest request)
- Overrides:
handleResolvedValue
in class org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver