有时候我们会碰到这么一个问题,有一个实体类,里面有一个Date类型的数据,jsp页面传递的时间参数是String的,这就导致无法对应,springmvc无法帮我们自动封装参数到实体类中了,这里我解决的方法有两种:

1.是自定义一个转换器,实现Converter<S,T>接口,S:代表要进行转换的参数的类型,T:代表转换后的类型

2.利用@DateTimeFormat注解

1 简单测试代码如下:DateConverter类中conver()方法将字符串转化为自定义的时间类型,当前台页面发送请求中有参数为string类型,而在后台接收时用Date类型直接接收,因为转换器会帮我们转化

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; public class DateConverter implements Converter<String, Date> {
private static final SimpleDateFormat dateF=new SimpleDateFormat("yyyy-MM-dd hh:mm");
/**
* Converter为一个接口。该接口有很多实现类
* 比如 StringToBooleanConverter string自动转化为Boolean
* */
@Override
public Date convert(String s) {
Date date=null;
if(CheckUtil.isNotEmpty(s)){
try {
date=dateF.parse(s);
} catch (ParseException e) {
new Throwable("字符串转换时间异常");
}
}
return date;
}
}

该转换器如果要实现,还需要将器注册到mvc注解驱动中,让注解驱动的conversion-service使用我们自定义的

 <bean id="conversionServiceFactoryBean" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<list>
<bean class="com.paic.utils.converter.DateConverter"></bean><!--将自定义的时间转换注入进去-->
</list>
</property>
</bean>
<!--开启springmvc注解的支持-->
<mvc:annotation-driven conversion-service="conversionServiceFactoryBean"/>

由于set对象时是加到了list中,所以并不影响其他的之前已经存在的类型转换实现类

简单测试代码如下,实体类上加@DateTimeFormat

public class Product {
private String id; // 主键
private String productNum; // 编号 唯一
private String productName; // 名称
private String cityName; // 出发城市
@DateTimeFormat(pattern="yyyy-MM-dd hh:ss")
private Date departureTime; // 出发时间
private String departureTimeStr;
private double productPrice; // 产品价格
private String productDesc; // 产品描述
private Integer productStatus; // 状态 0 关闭 1 开启
private String productStatusStr;

两中方式的区别在于第一种在项目中适用,第二种在当前实体类中适用

springmvc Date类型转换的更多相关文章

  1. springmvc的类型转换

     一.springmvc的类型转换 (一)默认情况下,springmvc内置的类型转换器只能 将"yyyy/MM/dd"类型的字符串转换为Date类型的日期 情境一: 而现在我们无 ...

  2. SpringMVC 之类型转换Converter 源代码分析

    SpringMVC 之类型转换Converter 源代码分析 最近研究SpringMVC的类型转换器,在以往我们需要 SpringMVC 为我们自动进行类型转换的时候都是用的PropertyEdito ...

  3. spring参数类型异常输出(二), SpringMvc参数类型转换错误输出(二)

    spring参数类型异常输出(二), SpringMvc参数类型转换错误输出(二) >>>>>>>>>>>>>>&g ...

  4. spring参数类型异常输出,SpringMvc参数类型转换错误输出

    spring参数类型异常输出, SpringMvc参数类型转换错误输出 >>>>>>>>>>>>>>>> ...

  5. Java,mysql String与date类型转换

    String 与 date类型转换 字符串转换成日期类型: SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");//小写 ...

  6. 转:SpringMVC之类型转换Converter(GenericConverter)

    转: http://blog.csdn.net/fsp88927/article/details/37692215 SpringMVC 之类型转换 Converter 1.1 目录 1.1 目录 1. ...

  7. SpringMVC 之类型转换Converter详解转载

    SpringMVC之类型转换Converter详解 本文转载 http://www.tuicool.com/articles/uUjaum 1.1     目录 1.1      目录 1.2     ...

  8. SpringMVC之类型转换Converter

    (转载:http://blog.csdn.net/renhui999/article/details/9837897) 1.1     目录 1.1      目录 1.2      前言 1.3   ...

  9. [转]SpringMVC日期类型转换问题三大处理方法归纳

    http://blog.csdn.net/chenleixing/article/details/45190371 前言 我们在SpringMVC开发中,可能遇到比较多的问题就是前台与后台实体类之间日 ...

随机推荐

  1. 进阶宝典一|SqlServer数据库自动备份设置

    很多人都没机会接触到数据库备份,经常操作的要么是数据库管理员,要么是项目负责人.那是不是说数据库备份就不用学了? 不,其实作为开发人员应该要了解数据备份,数据备份的手段有很多:软件备份.脚本备份.其他 ...

  2. 2019 GDUT Rating Contest II : Problem C. Rest Stops

    题面: C. Rest Stops Input file: standard input Output file: standard output Time limit: 1 second Memory ...

  3. python plt画图横纵坐标0点重合

    # -*- coding: utf-8 -*- import numpy as np import matplotlib.mlab as mlab import matplotlib.pyplot a ...

  4. [差分][二分][贪心]luogu P3634 [APIO2012]守卫

    题面 https://www.luogu.com.cn/problem/P3634 给m个限制,可以是一段区间中必须有或者必须无忍者 最多有k个忍者,问有多少个位点一定有忍者 分析 首先用差分标记一下 ...

  5. Python基础之告警定义与告警抑制

    技术背景 在前面一篇博客中我们介绍了在python中自定义异常以及异常的捕获.这里我们要介绍另外一种形式的用户提醒:告警.我们这里就不给出一些过于官方或者技术的定义了,在实际项目中的使用场景主要有这么 ...

  6. Android Studio 如何运行单个activity

    •写在前面 调试界面运行单个 Activity 可节省编译整个项目的时间提高效率: 本着提高效率的角度,特地上网百度相关知识: •解决方法 首先,在 AndroidManifest.xml 文件中,找 ...

  7. [状压DP]车II

    车 I I 车II 车II 题目描述 有一个 n ∗ m n*m n∗m的棋盘 ( n . m ≤ 80 , n ∗ m ≤ 80 ) (n.m≤80,n*m≤80) (n.m≤80,n∗m≤80)要 ...

  8. 201871030134-余宝鹏 实验二 个人项目一 《D{0-1}KP》项目报告

    项目 内容 课程班级博客链接 班级博客 这个作业要求链接 作业要求 我的课程学习目标 1.掌握软件项目个人开发流程2.掌握Github发布软件项目的操作方法 这个作业帮助我在哪些方面实现学习目标 1. ...

  9. Dynamics CRM邮箱配置

    Dynamics CRM对邮箱有很好的支持,开通邮箱后方便用户通过邮件进行Dynamics CRM的业务处理,同时也可以作为一直消息流提醒的手段应用于审批.通知等场景,可以做一些更深入的功能拓展. 本 ...

  10. DDD实战让中台和微服务的落地如虎添翼

    微服务到底怎么拆分和设计才算合理,拆多小才叫微服务?有没有好的方法来指导微服务和中台的设计呢? 深入DDD的核心知识体系与设计思想,带你掌握一套完整而系统的基于DDD的微服务拆分与设计方法,助力落地边 ...