public class Jackson2RequestMappingHandlerAdapter
extends org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter
RequestMappingHandlerAdapter
to create custom
ServletRequestDataBinderFactory
.
ServletRequestDataBinderFactory
will let us to recover the
DataBinder
used in deserialization process and place the
BindingResult
as Controller method parameter.
It only handles request which HandlerMethod
's
RequestMapping.consumes()
is equals to "application/json
"
(and no more consumes types declared).
To activate this adapter you must declare it on project's webmvc-config.xml.
Example:
<!--
Configures JSON content handling:
- Registers custom Jackson2 MessageConverter
- Registers custom Jackson2 ServletRequestDataBinderFactory to take
binding errors in account
-->
<bean id="dataBinderRequestMappingHandlerAdapter" p:order="1"
class="org.gvnix.web.json.Jackson2RequestMappingHandlerAdapter">
<!-- Custom Jackson ObjectMapper delegates object
serialization/deserialization to Spring ConversionService -->
<property name="objectMapper">
<bean class="org.gvnix.web.json.ConversionServiceObjectMapper" />
</property>
</bean>
INIT_BINDER_METHODS, MODEL_ATTRIBUTE_METHODS
Constructor and Description |
---|
Jackson2RequestMappingHandlerAdapter(org.springframework.core.convert.ConversionService conversionService,
org.springframework.validation.Validator validator)
Default constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
afterPropertiesSet()
Setup custom
DataBinderMappingJackson2HttpMessageConverter |
protected org.springframework.web.servlet.mvc.method.annotation.ServletRequestDataBinderFactory |
createDataBinderFactory(List<org.springframework.web.method.support.InvocableHandlerMethod> binderMethods)
Overrides the default implementation to create a
Jackson2ServletRequestDataBinderFactory instance. |
com.fasterxml.jackson.databind.ObjectMapper |
getObjectMapper() |
void |
setObjectMapper(com.fasterxml.jackson.databind.ObjectMapper objectMapper) |
protected boolean |
supportsInternal(org.springframework.web.method.HandlerMethod handlerMethod)
Check if handler method consumes json (and just json) messages to handle
it
|
getArgumentResolvers, getBeanFactory, getCustomArgumentResolvers, getCustomReturnValueHandlers, getInitBinderArgumentResolvers, getLastModifiedInternal, getMessageConverters, getModelAndViewResolvers, getReturnValueHandlers, getWebBindingInitializer, handleInternal, setArgumentResolvers, setAsyncRequestTimeout, setBeanFactory, setCacheSecondsForSessionAttributeHandlers, setCallableInterceptors, setContentNegotiationManager, setCustomArgumentResolvers, setCustomReturnValueHandlers, setDeferredResultInterceptors, setIgnoreDefaultModelOnRedirect, setInitBinderArgumentResolvers, setMessageConverters, setModelAndViewResolvers, setParameterNameDiscoverer, setReturnValueHandlers, setSessionAttributeStore, setSynchronizeOnSession, setTaskExecutor, setWebBindingInitializer
getLastModified, getOrder, handle, setOrder, supports
applyCacheSeconds, applyCacheSeconds, cacheForSeconds, cacheForSeconds, checkAndPrepare, checkAndPrepare, getCacheSeconds, getSupportedMethods, isRequireSession, isUseCacheControlHeader, isUseCacheControlNoStore, isUseExpiresHeader, preventCaching, setCacheSeconds, setRequireSession, setSupportedMethods, setUseCacheControlHeader, setUseCacheControlNoStore, setUseExpiresHeader
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
@Autowired public Jackson2RequestMappingHandlerAdapter(org.springframework.core.convert.ConversionService conversionService, org.springframework.validation.Validator validator)
protected org.springframework.web.servlet.mvc.method.annotation.ServletRequestDataBinderFactory createDataBinderFactory(List<org.springframework.web.method.support.InvocableHandlerMethod> binderMethods) throws Exception
Jackson2ServletRequestDataBinderFactory
instance.createDataBinderFactory
in class org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter
binderMethods
- @InitBinder
methodsException
- in case of invalid state or argumentspublic void afterPropertiesSet()
DataBinderMappingJackson2HttpMessageConverter
afterPropertiesSet
in interface org.springframework.beans.factory.InitializingBean
afterPropertiesSet
in class org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter
public com.fasterxml.jackson.databind.ObjectMapper getObjectMapper()
public void setObjectMapper(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
protected boolean supportsInternal(org.springframework.web.method.HandlerMethod handlerMethod)
supportsInternal
in class org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter
RequestMappingHandlerAdapter.supportsInternal(org.springframework.web.method.HandlerMethod)
Copyright © 2010–2015 General Directorate for Information Technologies (DGTI) of the Regional Ministry of Finance and Public Administration of the Generalitat Valenciana.. All rights reserved.