类 PathVariableMethodArgumentResolver
- java.lang.Object
- org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver
- org.springframework.web.servlet.mvc.method.annotation.PathVariableMethodArgumentResolver
public class PathVariableMethodArgumentResolver extends AbstractNamedValueMethodArgumentResolver implements UriComponentsContributor
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 classAbstractNamedValueMethodArgumentResolver
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 aMap
via type conversion, assuming a suitableConverter
orPropertyEditor
has been registered.A
WebDataBinder
is invoked to apply type conversion to resolved path variable values that don't yet match the method parameter type.- 从以下版本开始:
- 3.1
- 作者:
- Rossen Stoyanchev, Arjen Poutsma, Juergen Hoeller
嵌套类概要
从类继承的嵌套类/接口 org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver
AbstractNamedValueMethodArgumentResolver.NamedValueInfo
构造器概要
构造器 构造器 说明 PathVariableMethodArgumentResolver()
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 void
contributeMethodArgument(MethodParameter parameter, Object value, UriComponentsBuilder builder, Map<String,Object> uriVariables, ConversionService conversionService)
Process the given method argument and either update theUriComponentsBuilder
or add to the map with URI variables to use to expand the URI after all arguments are processed.protected AbstractNamedValueMethodArgumentResolver.NamedValueInfo
createNamedValueInfo(MethodParameter parameter)
Create theAbstractNamedValueMethodArgumentResolver.NamedValueInfo
object for the given method parameter.protected String
formatUriValue(ConversionService cs, TypeDescriptor sourceType, Object value)
protected void
handleMissingValue(String name, MethodParameter parameter)
Invoked when a named value is required, butAbstractNamedValueMethodArgumentResolver.resolveName(String, MethodParameter, NativeWebRequest)
returnednull
and there is no default value.protected void
handleResolvedValue(Object arg, String name, MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest request)
Invoked after a value is resolved.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 this contributor supports the given method parameter.从类继承的方法 org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver
handleMissingValue, resolveArgument
构造器详细资料
PathVariableMethodArgumentResolver
public PathVariableMethodArgumentResolver()
方法详细资料
supportsParameter
public boolean supportsParameter(MethodParameter parameter)
从接口复制的说明:UriComponentsContributor
Whether this contributor supports the given method parameter.- 指定者:
supportsParameter
在接口中HandlerMethodArgumentResolver
- 指定者:
supportsParameter
在接口中UriComponentsContributor
- 参数:
parameter
- the method parameter to check- 返回:
true
if this resolver supports the supplied parameter;false
otherwise
createNamedValueInfo
protected AbstractNamedValueMethodArgumentResolver.NamedValueInfo createNamedValueInfo(MethodParameter parameter)
Create theAbstractNamedValueMethodArgumentResolver.NamedValueInfo
object for the given method parameter. Implementations typically retrieve the method annotation by means ofMethodParameter.getParameterAnnotation(Class)
.- 指定者:
createNamedValueInfo
在类中AbstractNamedValueMethodArgumentResolver
- 参数:
parameter
- the method parameter- 返回:
- the named value information
resolveName
protected Object resolveName(String name, MethodParameter parameter, NativeWebRequest request) throws Exception
Resolve the given parameter type and value name into an argument value.- 指定者:
resolveName
在类中AbstractNamedValueMethodArgumentResolver
- 参数:
name
- the name of the value being resolvedparameter
- the method parameter to resolve to an argument value (pre-nested in case of aOptional
declaration)request
- the current request- 返回:
- the resolved argument (may be
null
) - 抛出:
Exception
- in case of errors
handleMissingValue
protected void handleMissingValue(String name, MethodParameter parameter) throws ServletRequestBindingException
Invoked when a named value is required, butAbstractNamedValueMethodArgumentResolver.resolveName(String, MethodParameter, NativeWebRequest)
returnednull
and there is no default value. Subclasses typically throw an exception in this case.- 覆盖:
handleMissingValue
在类中AbstractNamedValueMethodArgumentResolver
- 参数:
name
- the name for the valueparameter
- the method parameter- 抛出:
ServletRequestBindingException
handleResolvedValue
protected void handleResolvedValue(Object arg, String name, MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest request)
Invoked after a value is resolved.- 覆盖:
handleResolvedValue
在类中AbstractNamedValueMethodArgumentResolver
- 参数:
arg
- the resolved argument valuename
- the argument nameparameter
- the argument parameter typemavContainer
- theModelAndViewContainer
(may benull
)request
- the current request
contributeMethodArgument
public void contributeMethodArgument(MethodParameter parameter, Object value, UriComponentsBuilder builder, Map<String,Object> uriVariables, ConversionService conversionService)
从接口复制的说明:UriComponentsContributor
Process the given method argument and either update theUriComponentsBuilder
or add to the map with URI variables to use to expand the URI after all arguments are processed.- 指定者:
contributeMethodArgument
在接口中UriComponentsContributor
- 参数:
parameter
- the controller method parameter (nevernull
)value
- the argument value (possiblynull
)builder
- the builder to update (nevernull
)uriVariables
- a map to add URI variables to (nevernull
)conversionService
- a ConversionService to format values as Strings
formatUriValue
protected String formatUriValue(ConversionService cs, TypeDescriptor sourceType, Object value)