文档章节

表单中字符串封装对象转换成Date出错

 青竹风
发布于 2016/12/01 17:25
字数 452
阅读 11
收藏 1
default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'createDate'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [java.util.Date] for property 'createDate': no matching editors or conversion strategy found]

这里说明一下,我们的项目后台使用的是Spring MVC。在前端有个页面里有一个简单的form表单查询功能,表单里面有一些日期字段的查询,该日期字段是My97获取到时间值得

问题分析

表单中有属性,值为My97 Date值,获取到后,提交到后台,出现了上面的这一对异常信息。前端页面提交的时候参数检查了一下,看上去属性值都是对的,没什么问题。但是后端就是无法接收到参数。

问题排查

去百度了一下上面的异常信息,得出的解决方法,方案如下

解决方案

在对应的controller中增加属性编辑器,也就是在对应的Controller类中加上这个方法就可以了

@InitBinder
protected void initBinder(WebDataBinder binder) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}

注意这块的new CustomDateEditor(dateFormat, true)中的true,查看CustomDateEditor源码可以看到:

/**
 * Create a new CustomDateEditor instance, using the given DateFormat
 * for parsing and rendering.
 * <p>The "allowEmpty" parameter states if an empty String should
 * be allowed for parsing, i.e. get interpreted as null value.
 * Otherwise, an IllegalArgumentException gets thrown in that case.
 * @param dateFormat DateFormat to use for parsing and rendering
 * @param allowEmpty if empty strings should be allowed
 */public CustomDateEditor(DateFormat dateFormat, boolean allowEmpty) 
{   
   this.dateFormat = dateFormat;    
   this.allowEmpty = allowEmpty;    
   this.exactDateLength = -1;
}

当allowEmpty字段为true的时候form表单传递的值可以为空。否则会出现字符串解析为date报错。 所以这里最好是要设置一下为true,不然如果没有值,可能也报错了

© 著作权归作者所有

粉丝 0
博文 26
码字总数 10579
作品 0
厦门
私信 提问
spring mvc处理表单空字段不能转换的问题

在spring mvc中,直接用对象来接收表单的数据非常方便。想struts一样,spring自动找到对象的set方法,将值插入。现在有个问题就是,在表单中某个字段为空的时候,spring接收到的是"",但当这个...

小鱼朱朱
2014/07/15
2.8K
6
Java中关于String类型的10个问题

如何比较两个字符串?用“==”还是equals “==”是用来检测两个引用是不是指向内存中的同一个对象,而equals()方法则检测的是两个对象的值是否相等。只要你想检测俩字符串是不是相等的,你就...

神秘的寇先森
2017/12/21
0
0
JavaScript

一. 简介 1.JavaScript是嵌入HTML中在浏览器中的脚本语言,具有与java和C语言类似的语法。 一种网页编程技术,用来向HTML页面添加交互行为 直接嵌入HTML页面 由浏览器解释之行代码,不进行预...

Turnsole1
2017/08/23
0
0
Struts2 日期类型转换

Struts2 日期类型转换 import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Map;import com.opensymphony.xwork2.conversion.impl.Defa......

惠风康桥
2012/12/16
0
0
Java程序员从笨鸟到菜鸟之(四十四)细谈struts2(七)数据类型转换详解

本文来自:曹胜欢博客专栏。转载请注明出处:http://blog.csdn.net/csh624366188 Web应用程序的交互都是建立在HTTP之上的,互相传递的都是字符串。也就是说服务器接收到的来自用户的数据只能...

长平狐
2012/11/12
73
0

没有更多内容

加载失败,请刷新页面

加载更多

优雅的关闭Spring Boot

优雅的关闭Spring Boot 1、实现 TomcatConnectorCustomizer 接口拿到Tomcat的连接获取 Tomcat连接池 2、实现 ApplicationListener<ContextClosedEvent> 监听服务器关闭事件,注册JVM钩子函数...

sowhat
今天
2
0
Python3-Web开发

简介 Web开发框架 什么是Web框架? Web应用程序框架或简单的Web框架表示一组库和模块,使Web应用程序开发人员能够编写应用程序,而不必担心协议,线程管理等低级细节。 virtualenv是一个虚拟...

wuxinshui
今天
3
0
使用技媒体实践编写发布博客

技媒体实践博客 CSDN OSChina 知乎 简书 思否 掘金 51CTO

晨猫
今天
2
0
Lucene

1、什么是全文检索 数据分类 我们生活中的数据总体分为两种:结构化数据和非结构化数据。 结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。 非结构化数据:指不定长或无固...

榴莲黑芝麻糊
昨天
5
0
python到setuptools、pip工具的安装

python安装 基础开发库   apt-get install gcc  apt-get install openssl libssl-dev 安装数据库和开发库   apt-get install mysql-server libmysqld-dev python环境   下载地址...

问题终结者
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部