springmvc前后端日期类型的转换
来源:互联网 发布:windows系统备份还原 编辑:程序博客网 时间:2024/05/20 07:14
我们在做项目时通常会遇到,日期类型显示到前端如果不加处理显示出来就是date的long类型的毫秒值,很显然如果我们使用jstl标签可以使用格式化日期类型的标签,如
<fmt:formatDate value="${sk.startTime }" pattern="yyyy-MM-dd HH:mm:ss"/>相信你已经会使用,但显示使用jstl向页面传值比较少,一般使用json数据传输,传到回调函数进行解析,js日期类型有几个格式化函数toLocalString()转化为本地期时间格式,toDateLocalString()转化为本地日期格式,toTimeLocalString()转化为本地时间格式,toUTCString()函数写错还是写对不知道,大概印象,转化为国际日期时间格式,本地日期时间格式比较杂乱,我们不使用,国际化很明显看着就不爽。那么我们可以在后端定义统一日期格式。
如下代码
package cn.tedu.ttms.product.web;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Date;import com.fasterxml.jackson.core.JsonGenerator;import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.databind.JsonSerializer;import com.fasterxml.jackson.databind.SerializerProvider;//自定义类实现JsonSerializer类public abstract class JsonDateTypeConvert extends JsonSerializer<Date> {@Override/** * 参数arg0 Date类型我们需要处理 * 参数arg2 JsonGenerator类型携带我们格式化后的字符串 */public void serialize(Date arg0, JsonGenerator arg1, SerializerProvider arg2)throws IOException, JsonProcessingException {//定义一个日期样式模板SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy/MM/dd");//根据模板格式化日期String dateStr=simpleDateFormat.format(arg0);//写入JsonGeneratorarg1.writeString(dateStr);}}
写好怎么使用呢我们只需要注解@JsonSerialize放到entity实体类里变量的get方法上如下
package cn.tedu.ttms.product.entity;import java.io.Serializable;import java.util.Date;import com.fasterxml.jackson.databind.annotation.JsonSerialize;import cn.tedu.ttms.product.web.JsonDateTypeConvert;public class Project implements Serializable {/** * */private static final long serialVersionUID = 1L;/**项目的主键id*/private int id;/**项目名称*/private String name;/**项目编号*/private String code;/**项目开始日期*/private Date beginDate;/**项目结束日期*/private Date endDate;/**项目状态*/private Integer valid;/**项目备注*/private String note;/**记录创建时间*/private Date createdTime;/**记录修改时间*/private Date modifiedTime;/**记录创建记录的用户信息*/private String createdUser;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getCode() {return code;}public void setCode(String code) {this.code = code;}@JsonSerialize(using=JsonDateTypeConvert.class)public Date getBeginDate() {return beginDate;}public void setBeginDate(Date beginDate) {this.beginDate = beginDate;}@JsonSerialize(using=JsonDateTypeConvert.class)public Date getEndDate() {return endDate;}public void setEndDate(Date endDate) {this.endDate = endDate;}public Integer getValid() {return valid;}public void setValid(Integer valid) {this.valid = valid;}public String getNote() {return note;}public void setNote(String note) {this.note = note;}public Date getCreatedTime() {return createdTime;}public void setCreatedTime(Date createdTime) {this.createdTime = createdTime;}public Date getModifiedTime() {return modifiedTime;}public void setModifiedTime(Date modifiedTime) {this.modifiedTime = modifiedTime;}public String getCreatedUser() {return createdUser;}public void setCreatedUser(String createdUser) {this.createdUser = createdUser;}public static long getSerialversionuid() {return serialVersionUID;}}这样的话就可以自由使用了返回到前端是就会自动转换了
当前端的日期字符串类型要提交后端时我们也需要转换,我们可以通过Springmvc的统一日期类型转化来解决,看代码
package com.drs.controller.converter;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import org.springframework.core.convert.converter.Converter;/** * 将传入的字符串转化为java Data类型,不解释,应该可以看懂 * @author lenovo * */public class CustomDateConverter implements Converter<String,Date>{public Date convert(String source) {//实现 将日期串转成日期类型(格式是yyyy-MM-dd HH:mm:ss)SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");//转成直接返回try {return simpleDateFormat.parse(source);} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();}//如果参数绑定失败返回nullreturn null;}}
在springmvc.xml里配置
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"><property name="converters"><list><bean class="com.drs.controller.converter.CustomDateConverter"/></list></property></bean>
OK!
阅读全文
1 0
- springmvc前后端日期类型的转换
- springmvc实现日期类型前后端转换
- 前后端日期类型的转换
- SpringMVC日期类型自动转换的处理
- SpringMvc日期类型转换问题
- springMVC注解@initbinder日期类型的属性自动转换
- SpringMVC日期类型转换问题的几种处理方法
- springMVC接收日期类型参数的自定义转换
- JAVA springmvc自动转换日期类型的格式
- SpringMVC接收日期类型参数的自定义转换
- SpringMVC 日期类型转换问题的处理方法
- springMVC全局日期转换(@RequestBody json类型的)
- springMVC接收日期类型参数的自定义转换
- SpringMVC日期类型转换问题处理总结
- 日期的类型转换
- 日期类型的转换
- 日期类型的转换
- springMVC前后端数据交互
- Android开发的四大组件
- 设计模式笔记
- NDK的基础教程 五 登录判断
- hdoj 1089
- JEESZ-SSO解决方案
- springmvc前后端日期类型的转换
- UVA 1374 Power Calculus
- jeecg如何在list页面中将img的url转化成图片展示
- Java 细说多线程之内存可见性
- 什么是AR增强现实技术
- Qt源码学习之路(1) QObject类
- LaTeX数学公式
- 线程-volatile关键字的弊端
- 每日一题(50)—— 各类型与零值的比较