类 AbstractNamedValueResolvingStrategy
java.lang.Object
cn.taketoday.web.bind.resolver.AbstractNamedValueResolvingStrategy
- 所有已实现的接口:
ParameterResolvingStrategy
- 直接已知子类:
CookieParameterResolver,CookieParameterResolver.CookieCollectionParameterResolver,CookieParameterResolver.CookieValueAnnotationParameterResolver,ExpressionValueMethodArgumentResolver,MatrixParamParameterResolvingStrategy,ParameterResolvingRegistry.RequestAttributeMethodArgumentResolver,PathVariableMethodArgumentResolver,RequestHeaderMethodArgumentResolver,RequestParamMethodArgumentResolver,ServletParameterResolvers.ForCookie,ServletParameterResolvers.ForCookieCollection,ServletParameterResolvers.ForServletContextAttribute,WebSessionAttributeParameterResolver
public abstract class AbstractNamedValueResolvingStrategy
extends Object
implements ParameterResolvingStrategy
Abstract base class for resolving method arguments from a named value.
Request parameters, request headers, and path variables are examples of named
values. Each may have a name, a required flag, and a default value.
Subclasses define how to do the following:
- Obtain named value information for a method parameter
- Resolve names into argument values
- Handle missing argument values when argument values are required
- Optionally handle a resolved value
A default value string can contain ${...} placeholders and Expression
Language #{...} expressions. For this to work a
ConfigurableBeanFactory must be supplied to the class constructor.
- 从以下版本开始:
- 4.0 2022/1/19 21:26
- 作者:
- Arjen Poutsma, Rossen Stoyanchev, Juergen Hoeller, Harry Yang
-
字段概要
字段修饰符和类型字段说明private final cn.taketoday.beans.factory.config.ConfigurableBeanFactoryprivate final cn.taketoday.beans.factory.config.BeanExpressionContext -
构造器概要
构造器构造器说明AbstractNamedValueResolvingStrategy(cn.taketoday.beans.factory.config.ConfigurableBeanFactory beanFactory) Create a newAbstractNamedValueResolvingStrategyinstance. -
方法概要
修饰符和类型方法说明protected NamedValueInfogetNamedValueInfo(ResolvableMethodParameter resolvable) protected voidhandleMissingValue(String name, cn.taketoday.core.MethodParameter parameter) Invoked when a named value is required, butresolveName(String, ResolvableMethodParameter, RequestContext)returnednulland there is no default value.protected voidhandleMissingValue(String name, cn.taketoday.core.MethodParameter parameter, RequestContext request) Invoked when a named value is required, butresolveName(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.private ObjecthandleNullValue(String name, Object value, Class<?> paramType) Anullresults in afalsevalue forbooleans or an exception for other primitives.protected voidhandleResolvedValue(Object arg, String name, ResolvableMethodParameter resolvable, RequestContext context) Invoked after a value is resolved.final ObjectresolveArgument(RequestContext context, ResolvableMethodParameter resolvable) Resolve parameterprivate ObjectResolve the given annotation-specified value, potentially containing placeholders and expressions.protected abstract ObjectresolveName(String name, ResolvableMethodParameter resolvable, RequestContext context) Resolve the given parameter type and value name into an argument value.从类继承的方法 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait从接口继承的方法 cn.taketoday.web.bind.resolver.ParameterResolvingStrategy
supportsParameter
-
字段详细资料
-
configurableBeanFactory
@Nullable private final cn.taketoday.beans.factory.config.ConfigurableBeanFactory configurableBeanFactory -
expressionContext
@Nullable private final cn.taketoday.beans.factory.config.BeanExpressionContext expressionContext
-
-
构造器详细资料
-
AbstractNamedValueResolvingStrategy
public AbstractNamedValueResolvingStrategy() -
AbstractNamedValueResolvingStrategy
public AbstractNamedValueResolvingStrategy(@Nullable cn.taketoday.beans.factory.config.ConfigurableBeanFactory beanFactory) Create a newAbstractNamedValueResolvingStrategyinstance.- 参数:
beanFactory- a bean factory to use for resolving ${...} placeholder and #{...} EL expressions in default values, ornullif default values are not expected to contain expressions
-
-
方法详细资料
-
resolveArgument
@Nullable public final Object resolveArgument(RequestContext context, ResolvableMethodParameter resolvable) throws Throwable 从接口复制的说明:ParameterResolvingStrategyResolve parameter- 指定者:
resolveArgument在接口中ParameterResolvingStrategy- 参数:
context- Current request contextresolvable- resolvable parameter- 返回:
- method parameter instance
- 抛出:
Throwable- if anyExceptionoccurred- 另请参阅:
-
getNamedValueInfo
-
resolveEmbeddedValuesAndExpressions
Resolve the given annotation-specified value, potentially containing placeholders and expressions. -
resolveName
@Nullable protected abstract Object resolveName(String name, ResolvableMethodParameter resolvable, RequestContext context) throws Exception Resolve the given parameter type and value name into an argument value. -
handleMissingValue
protected void handleMissingValue(String name, cn.taketoday.core.MethodParameter parameter, RequestContext request) throws Exception Invoked when a named value is required, butresolveName(String, ResolvableMethodParameter, RequestContext)returnednulland there is no default value. Subclasses typically throw an exception in this case.- 参数:
name- the name for the valueparameter- the method parameterrequest- the current request- 抛出:
Exception
-
handleMissingValue
Invoked when a named value is required, butresolveName(String, ResolvableMethodParameter, RequestContext)returnednulland there is no default value. Subclasses typically throw an exception in this case.- 参数:
name- the name for the valueparameter- the method parameter
-
handleMissingValueAfterConversion
protected void handleMissingValueAfterConversion(String name, cn.taketoday.core.MethodParameter parameter, RequestContext request) throws Exception Invoked when a named value is present but becomesnullafter conversion.- 参数:
name- the name for the valueparameter- the method parameterrequest- the current request- 抛出:
Exception
-
handleNullValue
Anullresults in afalsevalue forbooleans or an exception for other primitives. -
handleResolvedValue
protected void handleResolvedValue(@Nullable Object arg, String name, ResolvableMethodParameter resolvable, RequestContext context) Invoked after a value is resolved.- 参数:
arg- the resolved argument valuename- the argument nameresolvable- the argument parameter typecontext- the current request
-