使用MappingJackson2HttpMessageConverter

问题描述:

Spring MVC的日期格式输出我有个约会DTO:使用MappingJackson2HttpMessageConverter

public class SampleDTO{ 
    Date date; 
    //setter, getter, constructor 
} 

在Spring MVC,我做它的ModelAttribute并派:

@ModelAttribute("sample") 
public SampleDTO getSample() { 
    return new SampleDTO(new Date()); 
} 

然而,在网页,它显示在下面的日期格式:

周四年08月31日00:00:00 CEST 2017年

任何人都知道如何更改日期格式?

PS:前端没有任何变化,没有使用JSTL,没有使用标签。 我只是想在MappingJackson2HttpMessageConverter

+0

如何是禅师与此有关?日期如何被网页打印?你用什么来生成HTML? –

+0

@JBNizet,不确定如果你能看到我的答案。我的意思是,如你所知,Spring MVC使用消息转换器来处理HttpInputMessage和HttpOutputMessage,因此MappingJackson2HttpMessageConverter是转换器之一。我想要的是,当Spring MVC出现在Web上时,它已经进入了字符串,并且具有我自定义的日期格式。 –

+0

@JBNizet,我使用Thymeleaf,我知道它可以使用Thymeleaf的内部函数,但我不想要 –

您可以配置在配置文件中配置信息转换器的一些变化:

@Configuration 
@EnableWebMvc 
public class WebConfiguration extends WebMvcConfigurerAdapter { 

    @Override 
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { 
     Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder(); 
     builder.indentOutput(true).dateFormat(new SimpleDateFormat("yyyy-MM-dd")); 
     converters.add(new MappingJackson2HttpMessageConverter(builder.build())); 
     converters.add(new MappingJackson2XmlHttpMessageConverter(builder.createXmlMapper(true).build())); 
    } 
}