[技术分享] 20171211_后端开发_使用@DateTimeFormat注解解决前台string类型与后台date类型的转换,使用@JsonFormat注解解决后台date类型与前台string类型的转换

说明:

有的时候由前台jsp页面填写一个日期,提交到后台spring mvc的时候,我们希望直接转换成一个Date类型,而不是由一个string 类型接收,然后再通过simpleDateFormat来进行转格式,这样太麻烦了,代码会显的很乱,spring为我们提供了类型转化器,写起来也是很麻烦,我们的需求很简单就是由框架帮我们去自动的转换类型而不是手动的转换,在这样的背景下,我们可以使用@DateTimeFormat注解。此外我们还有一个需求就是我们从数据库里面查询到了日期,然后我们想把这个日期自动的变成string类型,这时我们可以使用@JsonFormat注解。

@DateTimeFormat @JsonFormat   这两个注解在网上搜索很很多资料,我只提几个需要注意的地方:

  1. 注意这两个注解的注解位置
  2. 注意被注解的字段应该是Date类型
  3. 一般会用在VO中
  4. @JsonFormat不要忘了加GMT+8
  5. @DateTimeFormat要注意前台传过的日期格式是yyyy-MM-dd的形式,如果你传了一个yyyyMMdd的形式会报错(日期格式基于下面的程序):
   @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date alertDate;    

   @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")
    public Date getAlertDate() {
        return alertDate;
    }

    public void setAlertDate(Date alertDate) {
        this.alertDate = alertDate;
    }
时间: 2024-10-21 05:48:32

[技术分享] 20171211_后端开发_使用@DateTimeFormat注解解决前台string类型与后台date类型的转换,使用@JsonFormat注解解决后台date类型与前台string类型的转换的相关文章

[技术分享]20171212_后端开发_批量删除使用@requestBody注解获取前台传递参数

批量删除 难点在于前台的参数如何组织?组织完的参数后台如何接收? 我现在就把我们项目中用到的批量删除的方法整理出来,供大家参考. 先上一个通用版: var ids = new Array(); var vo = {}; vo.sequenceid = item.sequenceid; ids.push(vo); var data = JSON.stringify(ids); @RequestMapping(value="/list" method=RequestMethod.Delet

[技术分享] 融云开发案例核心代码分享

该套代码为从项目案例中提取的,可以直接拿去使用,主要包含了单聊及消息的处理.主要分三个页面处理完成,入口首页(index).消息列表页(message).会话页面(chat)index.html 页面(app入口页面) var rong; apiready=function(){ rong = api.require('rongCloud2'); //判断用户登录成功后执行方法 rongCloud(); } function rongCloud(){ //初始化 init(); //消息的监听,

安卓开发_数据存储技术_sqlite

一.SQLite SQLite第一个Alpha版本诞生于2000年5月,它是一款轻量级数据库,它的设计目标是嵌入式的,占用资源非常的低,只需要几百K的内存就够了.SQLite已经被多种软件和产品使用 二.SQLite特性 1 2 1.轻量级 3 SQLite和C\S模式的数据库软件不同,它是进程内的数据库引擎,因此不存在数据库的客户端和服务器.使用SQLite一般只需要带上它的一个动态库,就可以享受它的全部功能.而且那个动态库的尺寸也相当小. 4 2.独立性 5 SQLite数据库的核心引擎本身

UGUI技术之Canvas-画布使用_Unity3D开发_蓝鸥

UGUI技术之Canvas-画布使用_Unity3D开发_蓝鸥 文/宋小波啊(作者) Unity 中有一个能够直观并且快速构建用户界面的 UI 系统,我们叫它 uGUI. uGUI 在 uGUI 中,Canvas 是一个挂载了 Canvas 组件的游戏对象,它划定了一个区域,用来容纳所有的 UI 元素,并且这些 UI 元素必须是 Canvas 的子对象. 当我们创建一个新的 UI 元素时,如果场景中还没有 Canvas,就会自动创建出一个 Canvas. Canvas 会在 Scene 视图中显

华为云实战开发】5.如何快速创建免费Git代码仓库【华为云技术分享】

1 文章目的 本文主要帮助已经掌握或者想要掌握Git的开发者,如何更好的应用Git,以及更好的将Git与DevCloud结合应用. 2 概述 2.1 版本控制系统介绍 从狭义上来说,版本控制系统是软件项目开发过程中管理代码所有修订版本的软件,能够存储.追踪文件的修改历史,记录多个版本的开发和维护,事实上我们可以将任何对项目有帮助的文档交付版本控制系统进行管理.版本控制系统(Version Control Systems)主要分为两类,集中式和分布式. 2.1.1 集中式版本控制系统 集中式版本控

【我的物联网成长记3】如何开发物联网应用?【华为云技术分享】

[摘要] 物联网应用是设备管理.故障监测.数据分析的重要工具.本文介绍如何基于物联网平台开发应用,包括API.SDK和图形化开发三种方式. -------------------整体方案------------------- 物联网应用是企业和开发者进行设备管理.告警&故障监测.业务监控.数据分析的重要工具.物联网平台屏蔽了设备接入的复杂性和协议的差异性,解耦应用与设备,为上层应用提供统一格式的数据,简化终端厂商开发的同时,也让应用提供商聚焦于自身的业务开发.基于华为物联网平台的应用开发方案如下

【转】网页游戏能用PHP做后端开发吗? PHP Libevent扩展安装及应用

网页游戏能用PHP做后端开发吗? 当然可以.最好走HTTP,也可以做网络编程,而且写代码超简单,1个函数就可以建一个服务器端.stream_socket_server()多线程不是什么好主意,你可以用php libevent扩展,异步高并发.PHP还有很多网络的扩展包.PHP的开发效率高,.net Java ,你足够有钱,可以用. PHP Libevent扩展安装及应用 libevent是一个基于事件驱动的高性能网络库.支持多种 I/O 多路复用技术, epoll. poll. dev/poll

【线下沙龙】1月17日,来开发者服务品牌技术分享日

2015年开年巨献,优才网联合友盟.七牛云存储.Coding.SegmentFault等多家开发者服务品牌为大家带来一次精彩的技术分享盛宴!届时,你可以领略: 1.最in最前沿的技术分享2.业内技术大牛精心准备的干货,还可以与大牛们现场讨论哦 怎么样?只有 200 个活动名额,小伙伴们赶紧报名参加吧,一起来感受技术改变世界!点击报名 活动时间流程:13:30—14:00 学员签到14:00—14:50 七牛云存储首席布道师徐立:一个HTTP请求不为人知的背后14:50—15:40 LeanClo

1.APP后端开发系列:登陆系统设计中的注意问题

github博客-首发地址 想写这个系列很久了,因为之前做这个东西花费了大量的精力,有必要分享出来与大家共享.以前也写了一些关于 APP后端开发的系列文章 由于当初功力不够,很多问题描述不清楚或者解决方案过于复杂.不严谨等. 这一次查了很多资料,问了很多相关人士.准备再结合自己实际工作中的问题再次进行一些补充.就先从登陆的设计开始吧! 越想越糊涂 之前再做这一部分的时候,总想着复杂的技术,说出去多屌炸天呀.一般来说登陆的流程是: 当时对于安全性过度痴迷,确走偏了道路.首先提交的时候怕信息被人劫持