Class RequestHeaderMethodArgumentResolver
java.lang.Object
org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver
org.springframework.web.method.annotation.RequestHeaderMethodArgumentResolver
- All Implemented Interfaces:
HandlerMethodArgumentResolver
Resolves method arguments annotated with
@RequestHeader except for
Map arguments. See RequestHeaderMapMethodArgumentResolver for
details on Map arguments annotated with @RequestHeader.
An @RequestHeader is a named value resolved from a request header.
It has a required flag and a default value to fall back on when the request
header does not exist.
A WebDataBinder is invoked to apply type conversion to resolved
request header values that don't yet match the method parameter type.
- Since:
- 3.1
- Author:
- Arjen Poutsma, Rossen Stoyanchev
-
Nested Class Summary
Nested classes/interfaces inherited from class org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver
AbstractNamedValueMethodArgumentResolver.NamedValueInfo -
Constructor Summary
ConstructorsConstructorDescriptionRequestHeaderMethodArgumentResolver(org.springframework.beans.factory.config.ConfigurableBeanFactory beanFactory) Create a newRequestHeaderMethodArgumentResolverinstance. -
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 voidhandleMissingValueAfterConversion(String name, org.springframework.core.MethodParameter parameter, NativeWebRequest request) Invoked when a named value is present but becomesnullafter conversion.protected ObjectresolveName(String name, org.springframework.core.MethodParameter parameter, NativeWebRequest request) 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, handleResolvedValue, resolveArgument
-
Constructor Details
-
RequestHeaderMethodArgumentResolver
public RequestHeaderMethodArgumentResolver(@Nullable org.springframework.beans.factory.config.ConfigurableBeanFactory beanFactory) Create a newRequestHeaderMethodArgumentResolverinstance.- Parameters:
beanFactory- a bean factory to use for resolving ${...} placeholder and #{...} SpEL expressions in default values; ornullif default values are not expected to have 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 request) 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)request- 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 ServletRequestBindingException 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:
ServletRequestBindingException
-
handleMissingValueAfterConversion
protected void handleMissingValueAfterConversion(String name, org.springframework.core.MethodParameter parameter, NativeWebRequest request) throws Exception Description copied from class:AbstractNamedValueMethodArgumentResolverInvoked when a named value is present but becomesnullafter conversion.- Overrides:
handleMissingValueAfterConversionin classAbstractNamedValueMethodArgumentResolver- Parameters:
name- the name for the valueparameter- the method parameterrequest- the current request- Throws:
Exception
-