Class AbstractWebArgumentResolverAdapter
- java.lang.Object
- org.springframework.web.method.annotation.AbstractWebArgumentResolverAdapter
- All Implemented Interfaces:
HandlerMethodArgumentResolver
- Direct Known Subclasses:
ServletWebArgumentResolverAdapter
public abstract class AbstractWebArgumentResolverAdapter extends Object implements HandlerMethodArgumentResolver
An abstract base class adapting aWebArgumentResolverto theHandlerMethodArgumentResolvercontract.Note: This class is provided for backwards compatibility. However it is recommended to re-write a
WebArgumentResolverasHandlerMethodArgumentResolver. SincesupportsParameter(org.springframework.core.MethodParameter)can only be implemented by actually resolving the value and then checking the result is notWebArgumentResolver#UNRESOLVEDany exceptions raised must be absorbed and ignored since it's not clear whether the adapter doesn't support the parameter or whether it failed for an internal reason. TheHandlerMethodArgumentResolvercontract also provides access to model attributes and toWebDataBinderFactory(for type conversion).- Since:
- 3.1
- Author:
- Arjen Poutsma, Rossen Stoyanchev
Constructor Summary
Constructors Constructor Description AbstractWebArgumentResolverAdapter(WebArgumentResolver adaptee)Create a new instance.
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract NativeWebRequestgetWebRequest()Required for access to NativeWebRequest insupportsParameter(org.springframework.core.MethodParameter).ObjectresolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory)Delegate to theWebArgumentResolverinstance.booleansupportsParameter(MethodParameter parameter)Actually resolve the value and check the resolved value is notWebArgumentResolver.UNRESOLVEDabsorbing _any_ exceptions.
Constructor Detail
AbstractWebArgumentResolverAdapter
public AbstractWebArgumentResolverAdapter(WebArgumentResolver adaptee)
Create a new instance.
Method Detail
supportsParameter
public boolean supportsParameter(MethodParameter parameter)
Actually resolve the value and check the resolved value is notWebArgumentResolver.UNRESOLVEDabsorbing _any_ exceptions.- Specified by:
supportsParameterin interfaceHandlerMethodArgumentResolver- Parameters:
parameter- the method parameter to check- Returns:
trueif this resolver supports the supplied parameter;falseotherwise
resolveArgument
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception
Delegate to theWebArgumentResolverinstance.- Specified by:
resolveArgumentin interfaceHandlerMethodArgumentResolver- Parameters:
parameter- the method parameter to resolve. This parameter must have previously been passed toHandlerMethodArgumentResolver.supportsParameter(org.springframework.core.MethodParameter)which must have returnedtrue.mavContainer- the ModelAndViewContainer for the current requestwebRequest- the current requestbinderFactory- a factory for creatingWebDataBinderinstances- Returns:
- the resolved argument value, or
null - Throws:
IllegalStateException- if the resolved value is not assignable to the method parameter.Exception- in case of errors with the preparation of argument values
getWebRequest
protected abstract NativeWebRequest getWebRequest()
Required for access to NativeWebRequest insupportsParameter(org.springframework.core.MethodParameter).