zoukankan      html  css  js  c++  java
  • 关于SpringMVC, bean对象中含有Date型变,改如何接收数据的问题。

    前提:昨天夫君十万火急的呼唤我,说他程序报错了。错误很简单,String类型 转换Date类型失败。关键的是,他看不到前台页面,也没办法打断点看数据情况。于是,我决定拯救万民于水火之中,总结一下 关于前后台数据传输时候String和Date的类型转换问题。

     简单写了一个小程序,使用的框架是SSM。

    前端jsp 如下图:

    bean层 如下图所示:

    控制层 如下图所示:

    这样 运行整个项目,报错。因为String类型转换Date类型失败。

    -----------------------------------------------------------------------------我是分隔符--------------------------------------------------------------------------------

    目前有几种办法解决,我们一个一个说:

    第一种:(从前台入手)

      前台给后台传日期类型的值,这个值的格式 大体有两种。一种是2018-02-01,另一种是2018/02/01。

      当传入的日期类型格式为2018-02-01时:

      

      运行结果为:(报错

      

      注: 造成错误400的原因--前端提交数据的字段名称或者是字段类型和后台的实体类不一致,导致无法封装。

      当传入的格式为2018/02/01时:

      

       运行结果为:(不报错

      

      注:显示出现中文乱码,因为没有在配置文件中,做处理。下一篇再讲解关于中文乱码的问题。

       关于第一种办法的小结:   

      1.当前端的日期按照2018/02/01的格式传输给后台时,程序可以将该字符串类型的日期自动转换成日期格式,存储到实体类中。

      2.当前端的日期按照2018-02-01的格式传输给后台时,程序无法转换,抛异常。一般情况下,使用日期控件传回来的日期格式为2018-02-01.

      -----------------------------------------------------------------------------我是分隔符--------------------------------------------------------------------------------

     第二种:(从控制层入手)

        个人比较推荐这种做法,在控制层 加入如下一个方法:

        

        代码如下:

            @InitBinder
            public void initBinder(ServletRequestDataBinder bin) {
                 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                 CustomDateEditor cust = new CustomDateEditor(sdf, true);
                 bin.registerCustomEditor(Date.class, cust);
            }

         运行展示:

        

        

        注:这种办法 不仅使用于对象中的Date类型变量,同样使用于Date类型的对象。

        将controller做下更改:

        

        运行:

        

        结果:

        

       -----------------------------------------------------------------------------我是分隔符--------------------------------------------------------------------------------

        其实,也可以用String类型的变量去接受这样一个数据,然后再将这个String类型转换成Date类型(通过SimpleDateFormat)。这个方法,就不举例了。

        希望越来越好。2月加油。~~~~

  • 相关阅读:
    MySQL: MySQL数据学习专题
    安装Team Foundation Server 2012过程截图
    如果你喜欢一个程序员小伙
    ASP.net MVC: 一个开源的“留言系统”
    ASP.net MVC 中Security.FormsAuthentication验证用户的状态(匿名|已登录)
    Microsoft Visual Stadio 2012 Ultimate版安整过程安装体验
    win8全面开放民间下载地址!win8下载地址 win8下载链接
    【技术贴】解决右键没有新建文本文档|右键没有新建txt
    【技术贴】虚拟机网络上有重名的解决|虚拟机Net模式提示有重名
    【技术贴】利用myeclipse自动生成java类图|java源代码自动生成类图
  • 原文地址:https://www.cnblogs.com/lyy9902/p/8385369.html
Copyright © 2011-2022 走看看