Class ExpressionValueMethodArgumentResolver
java.lang.Object
org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver
org.springframework.web.method.annotation.ExpressionValueMethodArgumentResolver
- All Implemented Interfaces:
HandlerMethodArgumentResolver
Resolves method arguments annotated with
@Value.
An @Value does not have a name but gets resolved from the default
value string, which may contain ${...} placeholder or Spring Expression
Language #{...} expressions.
A WebDataBinder may be invoked to apply type conversion to
resolved argument value.
- Since:
- 3.1
- Author:
- Rossen Stoyanchev
-
Nested Class Summary
Nested classes/interfaces inherited from class org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver
AbstractNamedValueMethodArgumentResolver.NamedValueInfo -
Constructor Summary
ConstructorsConstructorDescriptionExpressionValueMethodArgumentResolver(org.springframework.beans.factory.config.ConfigurableBeanFactory beanFactory) Create a newExpressionValueMethodArgumentResolverinstance. -
Method Summary
Modifier and TypeMethodDescriptioncreateNamedValueInfo(org.springframework.core.MethodParameter parameter) Create theAbstractNamedValueMethodArgumentResolver.NamedValueInfoobject for the given method parameter.protected voidhandleMissingValue(String name, org.springframework.core.MethodParameter parameter) Invoked when a named value is required, butAbstractNamedValueMethodArgumentResolver.resolveName(String, MethodParameter, NativeWebRequest)returnednulland there is no default value.protected ObjectresolveName(String name, org.springframework.core.MethodParameter parameter, NativeWebRequest webRequest) Resolve the given parameter type and value name into an argument value.booleansupportsParameter(org.springframework.core.MethodParameter parameter) Whether the given method parameter is supported by this resolver.Methods inherited from class org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver
handleMissingValue, handleMissingValueAfterConversion, handleResolvedValue, resolveArgument
-
Constructor Details
-
ExpressionValueMethodArgumentResolver
public ExpressionValueMethodArgumentResolver(@Nullable org.springframework.beans.factory.config.ConfigurableBeanFactory beanFactory) Create a newExpressionValueMethodArgumentResolverinstance.- Parameters:
beanFactory- a bean factory to use for resolving ${...} placeholder and #{...} SpEL expressions in default values; ornullif default values are not expected to contain expressions
-
-
Method Details
-
supportsParameter
public boolean supportsParameter(org.springframework.core.MethodParameter parameter) Description copied from interface:HandlerMethodArgumentResolverWhether the given method parameter is supported by this resolver.- Parameters:
parameter- the method parameter to check- Returns:
trueif this resolver supports the supplied parameter;falseotherwise
-
createNamedValueInfo
protected AbstractNamedValueMethodArgumentResolver.NamedValueInfo createNamedValueInfo(org.springframework.core.MethodParameter parameter) Description copied from class:AbstractNamedValueMethodArgumentResolverCreate theAbstractNamedValueMethodArgumentResolver.NamedValueInfoobject for the given method parameter. Implementations typically retrieve the method annotation by means ofMethodParameter.getParameterAnnotation(Class).- Specified by:
createNamedValueInfoin classAbstractNamedValueMethodArgumentResolver- Parameters:
parameter- the method parameter- Returns:
- the named value information
-
resolveName
@Nullable protected Object resolveName(String name, org.springframework.core.MethodParameter parameter, NativeWebRequest webRequest) throws Exception Description copied from class:AbstractNamedValueMethodArgumentResolverResolve the given parameter type and value name into an argument value.- Specified by:
resolveNamein classAbstractNamedValueMethodArgumentResolver- Parameters:
name- the name of the value being resolvedparameter- the method parameter to resolve to an argument value (pre-nested in case of aOptionaldeclaration)webRequest- the current request- Returns:
- the resolved argument (may be
null) - Throws:
Exception- in case of errors
-
handleMissingValue
protected void handleMissingValue(String name, org.springframework.core.MethodParameter parameter) throws ServletException Description copied from class:AbstractNamedValueMethodArgumentResolverInvoked when a named value is required, butAbstractNamedValueMethodArgumentResolver.resolveName(String, MethodParameter, NativeWebRequest)returnednulland there is no default value. Subclasses typically throw an exception in this case.- Overrides:
handleMissingValuein classAbstractNamedValueMethodArgumentResolver- Parameters:
name- the name for the valueparameter- the method parameter- Throws:
ServletException
-