我正在开发一个Spring WebMvc(不是Spring Boot)项目,该项目使用纯Java配置来设置bean。我很难让Spring/Jackson使用java.time(jsr310)对象(如LocalDateTime)尊重@DateTimeFormat注释。
类路径上有jackson-datatype-jsr310和jackson-databind jars(版本2.7.4),以及用于基本webmvc应用程序spring-context和spring-webmvc(版本4.3.0.release)的相关spring jars
下面是我的相关配置类:
@Configuration
@ComponentScan({"com.example.myapp"})
public class WebAppConfig extends WebMvcConfigurationSupport {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
ObjectMapper mapper = Jackson2ObjectMapperBuilder
.json()
.indentOutput(true)
.featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
.findModulesViaServiceLoader(true)
.build();
converters.add(new MappingJackson2HttpMessageConverter(mapper));
super.addDefaultHttpMessageConverters(converters);
}
}
@jsonformat
是Jackson注释;@DateTimeFormat
是一个Spring注释。
@jsonformat
将控制将LocalDateTime
序列化为JSON期间的格式设置。
Jackson不知道Spring的@DateTimeFormat
,它用于控制Spring中bean在JSP视图中呈现时的格式。
主要内容:面向读者,先提条件,问题反馈Java 8在包下引入了新的和Time API。本教程参考将介绍包中提供的简单实用的方法。 面向读者 此参考资料是为初学者准备的,以帮助他们理解与java.time包中相关可用的所有方法相关的基本功能。 先提条件 在开始使用本参考中给出的各种类型的示例进行练习之前,假设您已经了解基本的Java编程。 问题反馈 我们不能保证您在学习此包教程的过程中不会遇到任何问题。本教程中的讲解,示例和代码等只是根
我正在尝试替换org.joda。现在是java时代。时间在我们的应用程序中。从那时起,我们使用的是org.joda。在时间包中,我们有一个带有org.joda.time.period的ISO8601格式的period。 由于P1Y、P1M、P1W、P1D等格式已存储在我们的系统中,因此在java.time.中寻找相同内容的格式化程序 java.time.Duration支持,小时,分钟和天。 但是
如果偏移量为4位(-05:00),我可以使用:,但这不适用于3位。 有什么想法吗?
问题内容: Joda Time有一个不错的DateTimeUtils.setCurrentMillisFixed()来模拟时间。 在测试中非常实用。 Java 8的java.time API 是否具有等效功能? 问题答案: 最接近的东西是物体。您可以使用任意时间(或从系统当前时间)创建Clock对象。所有date.time对象都有重载的方法,这些方法采用时钟对象代替当前时间。因此,您可以使用依赖项
问题内容: 我有一个对象,或一个对象。如何在java.time框架中将其转换为正确的类型? 我听说我们现在应该使用类型来做大部分业务逻辑。当使用尚未为java.time更新的旧代码时,我需要能够来回转换。什么类型映射到或? 问题答案: 避免使用旧的日期时间类 老式的日期时间类(包括,和)已被证明设计不良,混乱且麻烦。尽可能避免它们。但是,当你必须与这些旧类型进行互操作时,可以在新旧之间进行转换。
我有一个没有Spring Boot的项目,但它使用了一些Spring模块,如“spring data”和“spring data rest”。 我对java.time.*的序列化有一些问题领域。我找到了一些类似这样的教程,但即使我添加了以下依赖项 以及我的RepositoryRestConfigurerAdapter中的以下代码 } 我对java.time字段的实际回答如下 "rateDate"