全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

解决springmvc关于前台日期作为实体类对象参数类型转换错误的问题

页面报错:

后台错误:

Field error in object 'user' on field 'birthday': rejected value [2013-06-24]; codes [typeMismatch.user.birthday,typeMismatch.birthday,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [user.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 '2013-06-24'; nested exception is java.lang.IllegalArgumentException]

解决方案1:在对应的实体类属性上加入 @DateTimeFormat(pattern = "yyyy-MM-dd")

解决方案2:不使用 <mvc:annotation-driven/>注解

使用 DefaultAnnotationHandlerMapping 和 AnnotationMethodHandlerAdapter 注解驱动配置

在对应的实体类属性上加入 @DateTimeFormat(pattern = "yyyy-MM-dd")

<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
      <property name="webBindingInitializer">
        <bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
          <property name="conversionService">
            <bean class="org.springframework.format.support.FormattingConversionServiceFactoryBean"/>
          </property>
        </bean>
      </property>
    </bean>

3、使用 @InitBinder注解,注册一个父类Controller(BaseController),其他Controller去继承它

Springmvc配置文件 

<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
public class BaseController {
  @InitBinder
  public void initBinder(WebDataBinder binder) {
    /**
     * 第一种方式:使用WebDataBinder注册一个自定义的编辑器,编辑器是日期类型
     * 使用自定义的日期编辑器,日期格式:yyyy-MM-dd,第二个参数为是否为空  true代表可以为空
     */
    binder.registerCustomEditor(Date.class, new CustomDateEditor(
        new SimpleDateFormat("yyyy-MM-dd"), true));
  }
}

或者使用下面的方式

public class BaseController {
  @InitBinder
  public void initBinder(WebDataBinder binder) {
    /**
     * 方式二:使用WebDataBinder注册一个自定义的编辑器,编辑器是日期类型
     * 使用属性编辑器实现:重载setAsText,getAsText
     */
    binder.registerCustomEditor(Date.class, new PropertyEditorSupport() {

      @Override
      public String getAsText() {
        return new SimpleDateFormat("yyyy-MM-dd")
            .format((Date) getValue());
      }

      @Override
      public void setAsText(String text) {
        try {
          setValue(new SimpleDateFormat("yyyy-MM-dd").parse(text));
        } catch (Exception e) {
          e.printStackTrace();
          setValue(null);
        }
      }

    });
  }
}

以上这篇解决springmvc关于前台日期作为实体类对象参数类型转换错误的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# spring  # mvc  # 类型转换  # 如何使用SpringMVC的消息转换器设置日期格式  # SpringMVC中日期格式的转换  # SpringMVC对日期类型的转换示例  # SpringMVC用JsonSerialize日期转换方法  # SpringMVC自定义日期转换器方式  # 编辑器  # 自定义  # 给大家  # 为空  # 实体类  # 希望能  # 第二个  # 这篇  # 报错  # 小编  # 第一种  # 配置文件  # 大家多多  # Failed  # message  # context  # springframework  # org  # default  # DefaultMessageSourceResolvable 


相关文章: 如何用腾讯建站主机快速创建免费网站?  网站制作知乎推荐,想做自己的网站用什么工具比较好?  如何快速建站并高效导出源代码?  制作网站外包平台,自动化接单网站有哪些?  建站之星ASP如何实现CMS高效搭建与安全管理?  如何在宝塔面板中修改默认建站目录?  如何在建站主机中优化服务器配置?  建站主机CVM配置优化、SEO策略与性能提升指南  网站制作企业,网站的banner和导航栏是指什么?  如何用花生壳三步快速搭建专属网站?  建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析  如何快速搭建支持数据库操作的智能建站平台?  定制建站流程解析:需求评估与SEO优化功能开发指南  济南专业网站制作公司,济南信息工程学校怎么样?  C#怎么创建控制台应用 C# Console App项目创建方法  如何零成本快速生成个人自助网站?  c# 在ASP.NET Core中管理和取消后台任务  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  建站主机选购指南:核心配置优化与品牌推荐方案  东莞专业制作网站的公司,东莞大学生网的网址是什么?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  如何自定义建站之星模板颜色并下载新样式?  网页设计与网站制作内容,怎样注册网站?  高端建站三要素:定制模板、企业官网与响应式设计优化  网站制作新手教程,新手建设一个网站需要注意些什么?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  建站之星3.0如何解决常见操作问题?  如何选择PHP开源工具快速搭建网站?  网站制作员失业,怎样查看自己网站的注册者?  宝塔建站后网页无法访问如何解决?  建站主机助手选型指南:2025年热门推荐与高效部署技巧  建站之星官网登录失败?如何快速解决?  建站OpenVZ教程与优化策略:配置指南与性能提升  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  建站主机选购指南与交易推荐:核心配置解析  如何在景安云服务器上绑定域名并配置虚拟主机?  建站之星伪静态规则如何正确配置?  广州建站公司哪家好?十大优质服务商推荐  建站之星好吗?新手能否轻松上手建站?  高端建站如何打造兼具美学与转化的品牌官网?  红河网站制作公司,红河事业单位身份证如何上传?  制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?  如何在阿里云完成域名注册与建站?  高端企业智能建站程序:SEO优化与响应式模板定制开发  C#如何在一个XML文件中查找并替换文本内容  Python文件管理规范_工程实践说明【指导】  大同网页,大同瑞慈医院官网?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  建站主机如何安装配置?新手必看操作指南  阿里云高弹*务器配置方案|支持分布式架构与多节点部署 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。