类 PathVariableMethodArgumentResolver
java.lang.Object
cn.taketoday.web.bind.resolver.AbstractNamedValueResolvingStrategy
cn.taketoday.web.bind.resolver.PathVariableMethodArgumentResolver
public class PathVariableMethodArgumentResolver
extends AbstractNamedValueResolvingStrategy
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 class
AbstractNamedValueResolvingStrategy
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 has been registered.
- 从以下版本开始:
- 4.0 2022/2/3 16:32
- 作者:
- Harry Yang
-
字段概要
字段 -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明voidcontributeMethodArgument(cn.taketoday.core.MethodParameter parameter, Object value, UriComponentsBuilder builder, Map<String, Object> uriVariables, cn.taketoday.core.conversion.ConversionService conversionService) Process the given method argument and either update theUriComponentsBuilderor add to the map with URI variables to use to expand the URI after all arguments are processed.protected StringformatUriValue(cn.taketoday.core.conversion.ConversionService cs, cn.taketoday.core.TypeDescriptor sourceType, Object value) protected voidhandleMissingValue(String name, cn.taketoday.core.MethodParameter parameter) Invoked when a named value is required, butAbstractNamedValueResolvingStrategy.resolveName(String, ResolvableMethodParameter, RequestContext)returnednulland there is no default value.protected voidhandleMissingValueAfterConversion(String name, cn.taketoday.core.MethodParameter parameter, RequestContext request) Invoked when a named value is present but becomesnullafter conversion.protected voidhandleResolvedValue(Object arg, String name, ResolvableMethodParameter resolvable, RequestContext request) Invoked after a value is resolved.protected ObjectresolveName(String name, ResolvableMethodParameter resolvable, RequestContext context) Resolve the given parameter type and value name into an argument value.booleansupportsParameter(cn.taketoday.core.MethodParameter parameter) Whether this contributor supports the given method parameter.booleansupportsParameter(ResolvableMethodParameter resolvable) Whether the given parameter is supported by this resolver.从类继承的方法 cn.taketoday.web.bind.resolver.AbstractNamedValueResolvingStrategy
getNamedValueInfo, handleMissingValue, resolveArgument
-
字段详细资料
-
STRING_TYPE_DESCRIPTOR
private static final cn.taketoday.core.TypeDescriptor STRING_TYPE_DESCRIPTOR
-
-
构造器详细资料
-
PathVariableMethodArgumentResolver
public PathVariableMethodArgumentResolver()
-
-
方法详细资料
-
supportsParameter
从接口复制的说明:ParameterResolvingStrategyWhether the given parameter is supported by this resolver.static match
- 指定者:
supportsParameter在接口中ParameterResolvingStrategy
-
resolveName
@Nullable protected Object resolveName(String name, ResolvableMethodParameter resolvable, RequestContext context) throws Exception 从类复制的说明:AbstractNamedValueResolvingStrategyResolve the given parameter type and value name into an argument value.- 指定者:
resolveName在类中AbstractNamedValueResolvingStrategy- 参数:
name- the name of the value being resolvedresolvable- the method parameter to resolve to an argument value (pre-nested in case of aOptionaldeclaration)context- the current request context- 返回:
- the resolved argument (may be
null) - 抛出:
Exception- in case of errors
-
handleMissingValue
从类复制的说明:AbstractNamedValueResolvingStrategyInvoked when a named value is required, butAbstractNamedValueResolvingStrategy.resolveName(String, ResolvableMethodParameter, RequestContext)returnednulland there is no default value. Subclasses typically throw an exception in this case.- 覆盖:
handleMissingValue在类中AbstractNamedValueResolvingStrategy- 参数:
name- the name for the valueparameter- the method parameter
-
handleMissingValueAfterConversion
protected void handleMissingValueAfterConversion(String name, cn.taketoday.core.MethodParameter parameter, RequestContext request) 从类复制的说明:AbstractNamedValueResolvingStrategyInvoked when a named value is present but becomesnullafter conversion.- 覆盖:
handleMissingValueAfterConversion在类中AbstractNamedValueResolvingStrategy- 参数:
name- the name for the valueparameter- the method parameterrequest- the current request
-
handleResolvedValue
protected void handleResolvedValue(@Nullable Object arg, String name, ResolvableMethodParameter resolvable, RequestContext request) 从类复制的说明:AbstractNamedValueResolvingStrategyInvoked after a value is resolved.- 覆盖:
handleResolvedValue在类中AbstractNamedValueResolvingStrategy- 参数:
arg- the resolved argument valuename- the argument nameresolvable- the argument parameter typerequest- the current request
-
supportsParameter
public boolean supportsParameter(cn.taketoday.core.MethodParameter parameter) 从接口复制的说明:UriComponentsContributorWhether this contributor supports the given method parameter.- 指定者:
supportsParameter在接口中UriComponentsContributor
-
contributeMethodArgument
public void contributeMethodArgument(cn.taketoday.core.MethodParameter parameter, Object value, UriComponentsBuilder builder, Map<String, Object> uriVariables, cn.taketoday.core.conversion.ConversionService conversionService) 从接口复制的说明:UriComponentsContributorProcess the given method argument and either update theUriComponentsBuilderor 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
-