Package 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`, `org.springframework.web.method.support.UriComponentsContributor`

public class PathVariableMethodArgumentResolver extends org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver implements org.springframework.web.method.support.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 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.

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, Juergen Hoeller

## Nested Class Summary

## Nested classes/interfaces inherited from class org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver

`org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.NamedValueInfo`

## Constructor Summary

Constructors
Constructor
Description
`PathVariableMethodArgumentResolver()`

## Method Summary

Modifier and Type
Method
Description
`void`
`contributeMethodArgument(org.springframework.core.MethodParameter parameter, Object value, org.springframework.web.util.UriComponentsBuilder builder, Map<String,Object> uriVariables, org.springframework.core.convert.ConversionService conversionService)`
`protected org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.NamedValueInfo`
`createNamedValueInfo(org.springframework.core.MethodParameter parameter)`
`protected String`
`formatUriValue(org.springframework.core.convert.ConversionService cs, org.springframework.core.convert.TypeDescriptor sourceType, Object value)`
`protected void`
`handleMissingValue(String name, org.springframework.core.MethodParameter parameter)`
`protected void`
`handleMissingValueAfterConversion(String name, org.springframework.core.MethodParameter parameter, org.springframework.web.context.request.NativeWebRequest request)`
`protected void`
`handleResolvedValue(Object arg, String name, org.springframework.core.MethodParameter parameter, org.springframework.web.method.support.ModelAndViewContainer mavContainer, org.springframework.web.context.request.NativeWebRequest request)`
`protected Object`
`resolveName(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

`handleMissingValue, resolveArgument`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### PathVariableMethodArgumentResolver

public PathVariableMethodArgumentResolver()

## Method Details

### supportsParameter

public boolean supportsParameter(org.springframework.core.MethodParameter parameter)

Specified by:
  `supportsParameter` in interface `org.springframework.web.method.support.HandlerMethodArgumentResolver`
Specified by:
  `supportsParameter` in interface `org.springframework.web.method.support.UriComponentsContributor`

### 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

@Nullable protected Object resolveName(String name, org.springframework.core.MethodParameter parameter, org.springframework.web.context.request.NativeWebRequest request) throws Exception

Specified by:
  `resolveName` in class `org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver`
Throws:
  `Exception`

### handleMissingValue

protected void handleMissingValue(String name, org.springframework.core.MethodParameter parameter) throws org.springframework.web.bind.ServletRequestBindingException

Overrides:
  `handleMissingValue` in class `org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver`
Throws:
  `org.springframework.web.bind.ServletRequestBindingException`

### handleMissingValueAfterConversion

protected void handleMissingValueAfterConversion(String name, org.springframework.core.MethodParameter parameter, org.springframework.web.context.request.NativeWebRequest request) throws Exception

Overrides:
  `handleMissingValueAfterConversion` in class `org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver`
Throws:
  `Exception`

### handleResolvedValue

protected void handleResolvedValue(@Nullable Object arg, String name, org.springframework.core.MethodParameter parameter, @Nullable org.springframework.web.method.support.ModelAndViewContainer mavContainer, org.springframework.web.context.request.NativeWebRequest request)

Overrides:
  `handleResolvedValue` in class `org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver`

### contributeMethodArgument

public void contributeMethodArgument(org.springframework.core.MethodParameter parameter, Object value, org.springframework.web.util.UriComponentsBuilder builder, Map<String,Object> uriVariables, org.springframework.core.convert.ConversionService conversionService)

Specified by:
  `contributeMethodArgument` in interface `org.springframework.web.method.support.UriComponentsContributor`

### formatUriValue

@Nullable protected String formatUriValue(@Nullable org.springframework.core.convert.ConversionService cs, @Nullable org.springframework.core.convert.TypeDescriptor sourceType, Object value)