Java Web程序中利用春天框架返回数据格式的日期
返回数据时格式化日期日期第一步:创建CustomObjectMapper类
/** * 解决学习笔记一使用@ResponseBody返回数据时,日期格式默认显示为时间戳的问题。需配合MVC :消息转换器使用*/@组件(“自定义对象映射器”)公共类customObjectMapper扩展了对象映射器{ public customObjectMapper(){ custom serializer工厂工厂=new customserializer工厂();工厂。addgenericmapping(日期。类,新的JsonSerializerDate(){ @重写公共void序列化(Date值,JsonGenerator jsonGenerator,SerializerProvider提供程序)引发IOException,JsonProcessingException { simpledate format SDF=new simpledate format(' yyyy-MM-DD hh 3360MM 3360s ');jsongenerator。WriteString(SDF。格式(值));} });this.setSerializerFactory(工厂);} } 第二步:配置如下:
MVC :注释驱动的MVC :消息转换器bean class=' org。弹簧框架。http。转换器。JSON。mapping jacksonhtmessageconverter '属性名称=' object mapper ' ref=' customObjectMapper '/属性/bean/MVC :消息转换器/MVC :注释驱动效果如下:格式化前
格式化后
进阶:返回自定义格式日期使用@ResponseBody时返回数据字符串的日期格式日期类型属性默认返回一个长的型的时间戳,怎样能够返回自定义的日期格式?解决方案:目前有两种方式实现,1、局部修改(网上较多,但不推荐);继承杰克逊的抽象类:JsonSerializerT,然后在javabean的属性getter()上添加注解@JsonSerialize即可实现。代码如下:
导入Java。io。ioexception导入Java。文字。SimpleDateformat导入Java。乌提尔。日期;导入组织。科德豪斯。杰克逊。jsongenerator导入组织。科德豪斯。杰克逊。jsonprocessingexception导入组织。科德豪斯。杰克逊。地图。jsonserializer导入组织。科德豪斯。杰克逊。地图。序列化程序提供程序;/* * * @描述自定义返回数据数据格中日期格式化处理*/public类自定义日期序列化程序扩展JsonSerializerDate { @重写公共void序列化(日期值,JsonGenerator jsonGenerator,SerializerProvider提供程序)引发IOException,JsonProcessingException { simpledate format SDF=new simpledate format(' yyyyy-MM-DD hh 3360MM 3360s ');jsongenerator。WriteString(SDF。格式(值));} } 使用方式:
@JsonSerialize(使用=customdate序列化程序。class)public Date getCreateDate(){ return createDate;} 2、全局修改(强烈推荐):映射jacksonhtpmessageconverter主要通过对象映射器来实现返回数据字符串。这里我们继承该类,注册一个JsonSerializerT。然后在配置文件中注入自定义的对象映射器。代码如下:
导入Java。io。ioexception导入Java。文字。SimpleDateformat导入Java。乌提尔。日期;导入组织。科德豪斯。杰克逊。jsongenerator导入组织。科德豪斯。杰克逊。jsonprocessingexception导入组织。科德豪斯。杰克逊。地图。jsonserializer导入组织。科德豪斯。杰克逊。地图。对象映射器;导入组织。科德豪斯。杰克逊。地图。序列化程序提供程序;导入组织。科德豪斯。杰克逊。地图。爵士。customserializerfactory/* * * @描述解决日期类型返回数据格式为自定义格式*/public类CustomObjectMapper扩展了对象映射器{ public CustomObjectMapper(){ custom serializer工厂工厂=new customserializer工厂();工厂。addgenericmapping(日期。类,新的JsonSerializerDate(){ @重写公共void序列化(Date值,JsonGenerator jsonGenerator,SerializerProvider提供程序)引发IOException,JsonProcessingException { simpledate format SDF=new simpledate format(' yyyy-MM-DD hh 3360MM 3360s ');jsongenerator。WriteString(SDF。格式(值));} });this.setSerializerFactory(工厂);} } spring-servlet.xml中配置:
MVC :注释驱动的MVC :消息-转换器豆类=' org。弹簧框架。http。转换器。JSON。映射jacksonhtpmessageconverter '属性名称=' object mapper ' ref=' customObjectMapper '/属性/bean/MVC :消息-转换器/MVC :注释驱动的bean id='customObjectMapper '类=' com。PMC。DWA。常见。customObjectMapper '/bean
版权声明:Java Web程序中利用春天框架返回数据格式的日期是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。