zoukankan      html  css  js  c++  java
  • springMVC 前后台日期格式传值解决方式之二(共二) @InitBinder的使用

    关于springmvc日期问题的解决方式 除了本博客的【springMVC 前后台日期格式传值解决方式之 @DateTimeFormat的使用和配置】一文,

    还有如下这种方式:

    在Controller里加上这段代码:

     1     @InitBinder
     2     public void initBinder(ServletRequestDataBinder binder) {
     3         /**
     4          * 自动转换日期类型的字段格式
     5          */
     6         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
     7         binder.registerCustomEditor(Date.class, new CustomDateEditor(sdf, true));
     8 
     9         
    10     }

    注意,如果前台有多重日期格式,写成类似下面的方式是没有什么卵用的

     1     @InitBinder
     2     public void initBinder(ServletRequestDataBinder binder) {
     3         /**
     4          * 自动转换日期类型的字段格式
     5          */
     6         SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
     7         SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月");
     8         try {
     9             binder.registerCustomEditor(Date.class, new CustomDateEditor(sdf2, true));
    10         }catch(Exception e) {
    11             binder.registerCustomEditor(Date.class, new CustomDateEditor(sdf1, true));
    12         }
    13         
    14     }

    怎么解决呢?

    可参考这个问题:http://bbs.csdn.net/topics/380055180

    原文内容如下

    ----------------------------------------------------------分界线开始-----------------------------------------------------------

    配置文件为

    1
    2
    3
    4
    5
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">  
        <property name="webBindingInitializer">  
            <bean class="xx.xxx.MyBindingInitializer"/>  
        </property>  
    </bean



    MyBindingInitializer中,initBinder方法里的
    binder.registerCustomEditor(Date.class, new XXXEditor());


    在XXXEditor的setAsText方法中,使用系统所有可能用到的format格式一一尝试,捕获异常,最后正确绑定。

    -------------------------------------------------------分界线结束----------------------------------------------------------------

    至于其中的XXXEditor怎么写,大家可以参照例子中的CustomDateEditor,即:org.springframework.beans.propertyeditors.CustomDateEditor源码中怎么写的。


  • 相关阅读:
    linux抓包命令tcpdump
    Linux ssh配置详解
    吞吐量(TPS)、QPS、并发数、响应时间(RT)概念
    Python装饰器详解
    centos7 安装redis
    C# 操作Exchange 的powershell以实现邮件撤回
    C# 委托的理解和案例
    IIS10 http重定向https
    程序员修炼之道 | 不要让你的代码走上渡渡鸟的灭绝之路
    离子烫攻略
  • 原文地址:https://www.cnblogs.com/flying607/p/4691714.html
Copyright © 2011-2022 走看看