Class RequestHeaderMethodArgumentResolver
- java.lang.Object
- org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver
- org.springframework.web.method.annotation.RequestHeaderMethodArgumentResolver
- All Implemented Interfaces:
HandlerMethodArgumentResolver
public class RequestHeaderMethodArgumentResolver extends AbstractNamedValueMethodArgumentResolver
Resolves method arguments annotated with@RequestHeader
except forMap
arguments. SeeRequestHeaderMapMethodArgumentResolver
for details onMap
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
Constructors Constructor Description RequestHeaderMethodArgumentResolver(ConfigurableBeanFactory beanFactory)
Create a newRequestHeaderMethodArgumentResolver
instance.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected AbstractNamedValueMethodArgumentResolver.NamedValueInfo
createNamedValueInfo(MethodParameter parameter)
Create theAbstractNamedValueMethodArgumentResolver.NamedValueInfo
object for the given method parameter.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 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 the given method parameter is supported by this resolver.Methods inherited from class org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver
handleMissingValue, handleResolvedValue, resolveArgument
Constructor Detail
RequestHeaderMethodArgumentResolver
public RequestHeaderMethodArgumentResolver(@Nullable ConfigurableBeanFactory beanFactory)
Create a newRequestHeaderMethodArgumentResolver
instance.- Parameters:
beanFactory
- a bean factory to use for resolving ${...} placeholder and #{...} SpEL expressions in default values; ornull
if default values are not expected to have expressions
Method Detail
supportsParameter
public boolean supportsParameter(MethodParameter parameter)
Description copied from interface:HandlerMethodArgumentResolver
Whether the given method parameter is supported by this resolver.- Parameters:
parameter
- the method parameter to check- Returns:
true
if this resolver supports the supplied parameter;false
otherwise
createNamedValueInfo
protected AbstractNamedValueMethodArgumentResolver.NamedValueInfo createNamedValueInfo(MethodParameter parameter)
Description copied from class:AbstractNamedValueMethodArgumentResolver
Create theAbstractNamedValueMethodArgumentResolver.NamedValueInfo
object for the given method parameter. Implementations typically retrieve the method annotation by means ofMethodParameter.getParameterAnnotation(Class)
.- Specified by:
createNamedValueInfo
in classAbstractNamedValueMethodArgumentResolver
- Parameters:
parameter
- the method parameter- Returns:
- the named value information
resolveName
@Nullable protected Object resolveName(String name, MethodParameter parameter, NativeWebRequest request) throws Exception
Description copied from class:AbstractNamedValueMethodArgumentResolver
Resolve the given parameter type and value name into an argument value.- Specified by:
resolveName
in classAbstractNamedValueMethodArgumentResolver
- Parameters:
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- Returns:
- the resolved argument (may be
null
) - Throws:
Exception
- in case of errors
handleMissingValue
protected void handleMissingValue(String name, MethodParameter parameter) throws ServletRequestBindingException
Description copied from class:AbstractNamedValueMethodArgumentResolver
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.- Overrides:
handleMissingValue
in classAbstractNamedValueMethodArgumentResolver
- Parameters:
name
- the name for the valueparameter
- the method parameter- Throws:
ServletRequestBindingException