|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.springframework.context.support.ApplicationObjectSupport
org.springframework.web.context.support.WebApplicationObjectSupport
org.springframework.web.servlet.support.WebContentGenerator
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter
public class RequestMappingHandlerAdapter
An AbstractHandlerMethodAdapter that supports HandlerMethods
with the signature -- method argument and return types, defined in
@RequestMapping.
Support for custom argument and return value types can be added via
setCustomArgumentResolvers(java.util.List and setCustomReturnValueHandlers(java.util.List.
Or alternatively to re-configure all argument and return value types use
setArgumentResolvers(java.util.List and setReturnValueHandlers(List).
HandlerMethodArgumentResolver,
HandlerMethodReturnValueHandler| Field Summary | |
|---|---|
static ReflectionUtils.MethodFilter |
INIT_BINDER_METHODS
MethodFilter that matches @InitBinder methods. |
static ReflectionUtils.MethodFilter |
MODEL_ATTRIBUTE_METHODS
MethodFilter that matches @ModelAttribute methods. |
| Fields inherited from class org.springframework.web.servlet.support.WebContentGenerator |
|---|
METHOD_GET, METHOD_HEAD, METHOD_POST |
| Fields inherited from class org.springframework.context.support.ApplicationObjectSupport |
|---|
logger |
| Fields inherited from interface org.springframework.core.Ordered |
|---|
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE |
| Constructor Summary | |
|---|---|
RequestMappingHandlerAdapter()
Default constructor. |
|
| Method Summary | |
|---|---|
void |
afterPropertiesSet()
Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware). |
protected ServletRequestDataBinderFactory |
createDataBinderFactory(List<InvocableHandlerMethod> binderMethods)
Template method to create a new ServletRequestDataBinderFactory instance. |
HandlerMethodArgumentResolverComposite |
getArgumentResolvers()
Return the configured argument resolvers, or possibly null if
not initialized yet via afterPropertiesSet(). |
protected ConfigurableBeanFactory |
getBeanFactory()
Return the owning factory of this bean instance, or null. |
List<HandlerMethodArgumentResolver> |
getCustomArgumentResolvers()
Return the custom argument resolvers, or null. |
List<HandlerMethodReturnValueHandler> |
getCustomReturnValueHandlers()
Return the custom return value handlers, or null. |
HandlerMethodArgumentResolverComposite |
getInitBinderArgumentResolvers()
Return the argument resolvers for @InitBinder methods, or possibly
null if not initialized yet via afterPropertiesSet(). |
protected long |
getLastModifiedInternal(HttpServletRequest request,
HandlerMethod handlerMethod)
This implementation always returns -1. |
List<HttpMessageConverter<?>> |
getMessageConverters()
Return the configured message body converters. |
List<ModelAndViewResolver> |
getModelAndViewResolvers()
Return the configured ModelAndViewResolvers, or null. |
HandlerMethodReturnValueHandlerComposite |
getReturnValueHandlers()
Return the configured handlers, or possibly null if not
initialized yet via afterPropertiesSet(). |
WebBindingInitializer |
getWebBindingInitializer()
Return the configured WebBindingInitializer, or null. |
protected ModelAndView |
handleInternal(HttpServletRequest request,
HttpServletResponse response,
HandlerMethod handlerMethod)
Use the given handler method to handle the request. |
void |
setArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers)
Configure the complete list of supported argument types thus overriding the resolvers that would otherwise be configured by default. |
void |
setBeanFactory(BeanFactory beanFactory)
Callback that supplies the owning factory to a bean instance. |
void |
setCacheSecondsForSessionAttributeHandlers(int cacheSecondsForSessionAttributeHandlers)
Cache content produced by @SessionAttributes annotated handlers
for the given number of seconds. |
void |
setCustomArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers)
Provide resolvers for custom argument types. |
void |
setCustomReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers)
Provide handlers for custom return value types. |
void |
setIgnoreDefaultModelOnRedirect(boolean ignoreDefaultModelOnRedirect)
By default the content of the "default" model is used both during rendering and redirect scenarios. |
void |
setInitBinderArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers)
Configure the supported argument types in @InitBinder methods. |
void |
setMessageConverters(List<HttpMessageConverter<?>> messageConverters)
Provide the converters to use in argument resolvers and return value handlers that support reading and/or writing to the body of the request and response. |
void |
setModelAndViewResolvers(List<ModelAndViewResolver> modelAndViewResolvers)
Provide custom ModelAndViewResolvers. |
void |
setParameterNameDiscoverer(ParameterNameDiscoverer parameterNameDiscoverer)
Set the ParameterNameDiscoverer to use for resolving method parameter names if needed (e.g. |
void |
setReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers)
Configure the complete list of supported return value types thus overriding handlers that would otherwise be configured by default. |
void |
setSessionAttributeStore(SessionAttributeStore sessionAttributeStore)
Specify the strategy to store session attributes with. |
void |
setSynchronizeOnSession(boolean synchronizeOnSession)
Set if controller execution should be synchronized on the session, to serialize parallel invocations from the same client. |
void |
setWebBindingInitializer(WebBindingInitializer webBindingInitializer)
Provide a WebBindingInitializer with "global" initialization to apply to every DataBinder instance. |
protected boolean |
supportsInternal(HandlerMethod handlerMethod)
Return true if all arguments and the return value of the given
HandlerMethod are supported by the configured resolvers and handlers. |
| Methods inherited from class org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter |
|---|
getLastModified, getOrder, handle, setOrder, supports |
| Methods inherited from class org.springframework.web.servlet.support.WebContentGenerator |
|---|
applyCacheSeconds, applyCacheSeconds, cacheForSeconds, cacheForSeconds, checkAndPrepare, checkAndPrepare, getCacheSeconds, getSupportedMethods, isRequireSession, isUseCacheControlHeader, isUseCacheControlNoStore, isUseExpiresHeader, preventCaching, setCacheSeconds, setRequireSession, setSupportedMethods, setUseCacheControlHeader, setUseCacheControlNoStore, setUseExpiresHeader |
| Methods inherited from class org.springframework.web.context.support.WebApplicationObjectSupport |
|---|
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext |
| Methods inherited from class org.springframework.context.support.ApplicationObjectSupport |
|---|
getApplicationContext, getMessageSourceAccessor, initApplicationContext, requiredContextClass, setApplicationContext |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final ReflectionUtils.MethodFilter INIT_BINDER_METHODS
@InitBinder methods.
public static final ReflectionUtils.MethodFilter MODEL_ATTRIBUTE_METHODS
@ModelAttribute methods.
| Constructor Detail |
|---|
public RequestMappingHandlerAdapter()
| Method Detail |
|---|
public void setCustomArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers)
setArgumentResolvers(java.util.List) instead.
public List<HandlerMethodArgumentResolver> getCustomArgumentResolvers()
null.
public void setArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers)
public HandlerMethodArgumentResolverComposite getArgumentResolvers()
null if
not initialized yet via afterPropertiesSet().
public void setInitBinderArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers)
@InitBinder methods.
public HandlerMethodArgumentResolverComposite getInitBinderArgumentResolvers()
@InitBinder methods, or possibly
null if not initialized yet via afterPropertiesSet().
public void setCustomReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers)
setReturnValueHandlers(java.util.List) .
public List<HandlerMethodReturnValueHandler> getCustomReturnValueHandlers()
null.
public void setReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers)
public HandlerMethodReturnValueHandlerComposite getReturnValueHandlers()
null if not
initialized yet via afterPropertiesSet().
public void setModelAndViewResolvers(List<ModelAndViewResolver> modelAndViewResolvers)
ModelAndViewResolvers.
Note: This method is available for backwards
compatibility only. However, it is recommended to re-write a
ModelAndViewResolver as HandlerMethodReturnValueHandler.
An adapter between the two interfaces is not possible since the
HandlerMethodReturnValueHandler.supportsReturnType(org.springframework.core.MethodParameter) method
cannot be implemented. Hence ModelAndViewResolvers are limited
to always being invoked at the end after all other return value
handlers have been given a chance.
A HandlerMethodReturnValueHandler provides better access to
the return type and controller method information and can be ordered
freely relative to other return value handlers.
public List<ModelAndViewResolver> getModelAndViewResolvers()
ModelAndViewResolvers, or null.
public void setMessageConverters(List<HttpMessageConverter<?>> messageConverters)
public List<HttpMessageConverter<?>> getMessageConverters()
public void setWebBindingInitializer(WebBindingInitializer webBindingInitializer)
public WebBindingInitializer getWebBindingInitializer()
null.
public void setSessionAttributeStore(SessionAttributeStore sessionAttributeStore)
DefaultSessionAttributeStore,
storing session attributes in the HttpSession with the same attribute
name as in the model.
public void setCacheSecondsForSessionAttributeHandlers(int cacheSecondsForSessionAttributeHandlers)
@SessionAttributes annotated handlers
for the given number of seconds. Default is 0, preventing caching completely.
In contrast to the "cacheSeconds" property which will apply to all general
handlers (but not to @SessionAttributes annotated handlers),
this setting will apply to @SessionAttributes handlers only.
WebContentGenerator.setCacheSeconds(int),
SessionAttributespublic void setSynchronizeOnSession(boolean synchronizeOnSession)
More specifically, the execution of the handleRequestInternal
method will get synchronized if this flag is "true". The best available
session mutex will be used for the synchronization; ideally, this will
be a mutex exposed by HttpSessionMutexListener.
The session mutex is guaranteed to be the same object during
the entire lifetime of the session, available under the key defined
by the SESSION_MUTEX_ATTRIBUTE constant. It serves as a
safe reference to synchronize on for locking on the current session.
In many cases, the HttpSession reference itself is a safe mutex as well, since it will always be the same object reference for the same active logical session. However, this is not guaranteed across different servlet containers; the only 100% safe way is a session mutex.
HttpSessionMutexListener,
WebUtils.getSessionMutex(javax.servlet.http.HttpSession)public void setParameterNameDiscoverer(ParameterNameDiscoverer parameterNameDiscoverer)
LocalVariableTableParameterNameDiscoverer.
public void setIgnoreDefaultModelOnRedirect(boolean ignoreDefaultModelOnRedirect)
RedirectAttributes argument and use it to provide
attributes for a redirect.
Setting this flag to true guarantees the "default" model is
never used in a redirect scenario even if a RedirectAttributes argument
is not declared. Setting it to false means the "default" model
may be used in a redirect if the controller method doesn't declare a
RedirectAttributes argument.
The default setting is false but new applications should
consider setting it to true.
RedirectAttributespublic void setBeanFactory(BeanFactory beanFactory)
Invoked after the population of normal bean properties
but before an initialization callback such as
InitializingBean.afterPropertiesSet() or a custom init-method.
A ConfigurableBeanFactory is expected for resolving
expressions in method argument default values.
setBeanFactory in interface BeanFactoryAwarebeanFactory - owning BeanFactory (never null).
The bean can immediately call methods on the factory.BeanInitializationExceptionprotected ConfigurableBeanFactory getBeanFactory()
null.
public void afterPropertiesSet()
InitializingBeanThis method allows the bean instance to perform initialization only possible when all bean properties have been set and to throw an exception in the event of misconfiguration.
afterPropertiesSet in interface InitializingBeanprotected boolean supportsInternal(HandlerMethod handlerMethod)
true if all arguments and the return value of the given
HandlerMethod are supported by the configured resolvers and handlers.
supportsInternal in class AbstractHandlerMethodAdapterhandlerMethod - the handler method to check
protected long getLastModifiedInternal(HttpServletRequest request,
HandlerMethod handlerMethod)
@RequestMapping
method can calculate the lastModified value, call
WebRequest.checkNotModified(long), and return null
if the result of that call is true.
getLastModifiedInternal in class AbstractHandlerMethodAdapterrequest - current HTTP requesthandlerMethod - handler method to use
protected final ModelAndView handleInternal(HttpServletRequest request,
HttpServletResponse response,
HandlerMethod handlerMethod)
throws Exception
AbstractHandlerMethodAdapter
handleInternal in class AbstractHandlerMethodAdapterrequest - current HTTP requestresponse - current HTTP responsehandlerMethod - handler method to use. This object must have previously been passed to the
AbstractHandlerMethodAdapter.supportsInternal(HandlerMethod) this interface, which must have returned true.
null if
the request has been handled directly
Exception - in case of errors
protected ServletRequestDataBinderFactory createDataBinderFactory(List<InvocableHandlerMethod> binderMethods)
throws Exception
The default implementation creates a ServletRequestDataBinderFactory. This can be overridden for custom ServletRequestDataBinder subclasses.
binderMethods - @InitBinder methods
Exception - in case of invalid state or arguments
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||