• 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源码中怎么写的。


  • 相关阅读:
    第六课 变量和常量
    第六课 实型(浮点型)
    第五课 字符型数据 (主函数冲突)
    第四课 整型数据(主函数冲突)
    第二课(需订正)运行失败解决方法
    第三课 数据类型分类(关键字)
    第二课
    第一课
    贝叶斯滤波与卡尔曼滤波第九讲笔记《粒子滤波》
    贝叶斯滤波与卡尔曼滤波第八讲代码
  • 原文地址:https://www.cnblogs.com/flying607/p/4691714.html
Copyright © 2020-2023  润新知