背景:springmvc4.3.2+spring4.3.2+mybatis3.4.1

当前台传递的参数有时间类型时,封装的vo对象也有对应的时间类型与之对象,

但是如果此时用对象去接收后台会报错,类型转换异常。

例子:

 @RequestMapping("/test5")
public String test5(ResultInfo result){
Date birthday = result.getBirthday();
System.out.println(birthday);
System.out.println(result);
return "success";
}
 <form action="json/test5" method="post">
<input type="date" name="birthday" id="birthday"/>
<input type="text" name="code" />
<input type="text" name="desc" />
<input type="submit" value="提交" />
</form>

报错如下:

Field error in object 'resultInfo' on field 'birthday': rejected value [2018-01-02]; 
codes [typeMismatch.resultInfo.birthday,typeMismatch.birthday,typeMismatch.java.util.Date,typeMismatch];
arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [resultInfo.birthday,birthday];
arguments []; default message [birthday]]; default message [Failed to convert property value of type [java.lang.String] to required type [java.util.Date] for property 'birthday';
nested exception is org.springframework.core.convert.ConversionFailedException:
Failed to convert from type [java.lang.String] to type [java.util.Date] for value '2018-01-02'; nested exception is java.lang.IllegalArgumentException]

看这红色的部分知道,消息转换器不能将字符串转换为时间类型的数据。需要我们手动的去转换。

我们只需要在vo(ResultInfo )对象的时间类型的属相加上@DateTimeFormat(pattern="yyyy-mm-dd") 就可以啦

 public class ResultInfo implements Serializable{

     private static final long serialVersionUID = 1L;

     private String code ;
private String desc;
private Object data;
//解决后台类型为时间类型无法转换的问题
@DateTimeFormat(pattern="yyyy-mm-dd")
private Date birthday;
}

需要注意的是:

@dateTimeFormat是针对表单提交的情况可以使用,但是当前端使用json数据进行传输的时候就不行了

使用json数据传输时,我们常用的注解是@requestBody

此时需要使用@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")

此时就可以完美的映射时间字段了,使用了@jsonFormat注解的字段在前端显示的时候,也会格式化输出哦

解释下timezone字段的意思:我们中国是东八区,需要加上8正确的显示我们时区的时间

如果有不对,欢迎指正!

springmvc时间类型值传输映射的更多相关文章

  1. linux把时间类型值转换为数值型

    字符及字符串处理函数:字符及字符串处理函数的处理对象均为字符型数据,但其返回值类型各异.1.取子串函数:格式:substr(c,n1,n2)功能:取字符串C第n1个字符起的n2个字符.返回值类型是字符 ...

  2. jdk8环境下sprngboot/springmvc中JSR310新日期/时间类LocalDateTime显示效果带T

    如图所示: 日期时间类中带了一个T,以上这种格式LocalDateTime格式化的时候默认日期时间格式:ISO.DATE_TIME(按笔者目前的知识理解是ISO8601规范中的日期时间格式化) 想要把 ...

  3. response的contentType的类型值Response.ContentType

    MIME类型的含义 MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开.多用于指定一些客户端自定义的文件名,以及一些媒体 ...

  4. Java日期时间类

    日期时间类有三种: 一.java.util.Date:一般用于声明日期时间类型的变量. 二.java.sql.Date:一般用于数据库日期时间的映射. 三.java.util.Calendar:一般用 ...

  5. QMetaEnum利用Qt元数据实现枚举(enum)类型值及字符串转换

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QMetaEnum利用Qt元数据实现枚举(enum)类型值及字符串转换     本文地址:ht ...

  6. Spring MVC控制器类名称处理映射

    以下示例显示如何使用Spring Web MVC框架使用控制器类名称处理程序映射. ControllerClassNameHandlerMapping类是基于约定的处理程序映射类,它将URL请求映射到 ...

  7. Spring MVC-处理程序映射(Handler Mapping)-控制器类名称处理程序映射(Controller Class Name Handler Mapping)示例(转载实践)

    以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_controllerclassnamehandlermapping.htm 说明: ...

  8. Java中常见时间类的使用

    模拟场景针对于常用的操作API,比如流操作(字符流.字节流),时间操作等,仅仅了解概念性的定义终究是无法了解该类的用途和使用方式:这种情况在使用的时候便一脸茫然,脑海中映射不到对应的知识点.本篇博客将 ...

  9. SAP S4HANA如何取到采购订单ITEM里的'条件'选项卡里的条件类型值?

    SAP S4HANA如何取到采购订单ITEM里的'条件'选项卡里的条件类型值? 最近在准备一个采购订单行项目的增强的function spec.其中有一段逻辑是取到采购订单行项目条件里某个指定的条件类 ...

随机推荐

  1. python在linux中输出带颜色的文字的方法

    在开发项目过程中,为了方便调试代码,经常会向stdout中输出一些日志,默认的这些日志就直接显示在了终端中.而一般的应用服务器,第三方库,甚至服务器的一些通告也会在终端中显示,这样就搅乱了我们想要的信 ...

  2. UIAlertController custom font, size, color

    本文转载至 http://stackoverflow.com/questions/26460706/uialertcontroller-custom-font-size-color up vote2d ...

  3. 【BZOJ3124】[Sdoi2013]直径 树形DP(不用结论)

    [BZOJ3124][Sdoi2013]直径 Description 小Q最近学习了一些图论知识.根据课本,有如下定义.树:无回路且连通的无向图,每条边都有正整数的权值来表示其长度.如果一棵树有N个节 ...

  4. 利用libpcap分析网络上的数据包(入门级)

    本文可任意转载,但请保留作者及出处作者:rainfish出处:http://blog.csdn.net/bat603/经过几天的突击,终于明白了怎样在局域网内抓包,这可是我多年来的梦想.首先说说我的学 ...

  5. 巨蟒python全栈开发linux之centos2

    1.一些命令回顾 在vm中,右击"打开终端",输入命令ifconfig,得到的下图算是一个终端,并且我们可以看到服务器的ip是192.168.34.128 我们通过windows上 ...

  6. IOS自动布局的Problem

    今天为做一个小小的footerView我的心脏差点气出来... 第一步 新建一个view xib文件 第二步 新建一个UIview的类 第三步 在UIview中间放一个Lable,添加约束,水平垂直居 ...

  7. 路径规划 Adjacency matrix 传球问题

    建模 问题是什么 知道了问题是什么答案就ok了 重复考虑 与 重复计算 程序可以重复考虑  但往目标篮子中放入时,放不放把握好就ok了. 集合 交集 并集 w 路径规划 字符串处理 42423 424 ...

  8. recursion

    w recursion nexttoken

  9. java中参数传递的问题

    public class Test { public static void main(String[] args) { StringBuffer a = new StringBuffer(" ...

  10. (2.3)学习笔记之mysql基础操作(表/库操作)

    本系列学习笔记主要讲如下几个方面: 本文笔记[六:表操作--线上可以直接删除表吗?] 附加:库操作 [1]创建制定字符集的数据库 需求描述: 在创建DB的时候指定字符集. 操作过程: 1.使用crea ...