7.2. Coding the Configuration
We use this configuration class to specify the locations of web resources and JSP views. The configureMessageConverters method directs that dates must be serialized to strings, overriding the default that serializes them to a numeric representation of a timestamp.
I am creating Java configuration classes here as I am not a big fan of doing configuration in XML.
package ru.ibase.fbjavaex.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.EnableWebMvc;import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;import org.springframework.web.servlet.view.JstlView;import org.springframework.web.servlet.view.UrlBasedViewResolver;import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;import org.springframework.http.converter.HttpMessageConverter;import com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jackson.databind.SerializationFeature;import java.util.List;@Configuration@ComponentScan("ru.ibase.fbjavaex")@EnableWebMvcpublic class WebAppConfig extends WebMvcConfigurerAdapter {@Overridepublic void configureMessageConverters(List<HttpMessageConverter<?>> httpMessageConverters) {MappingJackson2HttpMessageConverter jsonConverter =new MappingJackson2HttpMessageConverter();ObjectMapper objectMapper = new ObjectMapper();objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false);jsonConverter.setObjectMapper(objectMapper);httpMessageConverters.add(jsonConverter);}@Beanpublic UrlBasedViewResolver setupViewResolver() {UrlBasedViewResolver resolver = new UrlBasedViewResolver();resolver.setPrefix("/WEB-INF/jsp/");resolver.setSuffix(".jsp");resolver.setViewClass(JstlView.class);return resolver;}@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/resources/**").addResourceLocations("/WEB-INF/resources/");}}
