xin_789 2019-12-25 00:43 采纳率: 50%
浏览 198

关于使用ConvertUtils.register控制台出现异常,导致向数据库中插入数据失败

我在idea里面在servlet里面使用
ConvertUtils.register(new DateLocaleConverter(), Date.class);
BeanUtils.populate(user, request.getParameterMap());
这俩个方法的时候(就是从表单里面获取数据封装到user里面,因为里面有Date型数据,所以使用ConvertUtils注册)一开始访问,直接浏览器500说是服务器的问题,然后发现只导入了beanutils的jar包没有导入logging的jar包,导入之后浏览器不报错但控制台就出现异常,导致后面将user的数据插入到数据库的 us.register(user)语句也执行失败,而且就是ConvertUtils.register(new DateLocaleConverter(), Date.class);这句的问题,删掉之后,就是下一句的问题异常如图:图片说明
图片说明

其中蓝色的错误就是上面俩句,希望有人解答一番,被这个错误给弄的烦死?

  • 写回答

1条回答 默认 最新

  • yellow1019 2023-12-03 17:05
    关注

    可以考虑在register中自己定义日期类格式转换,如下参考代码:

            ConvertUtils.register(new Converter() {//重新注册java.util.Date
                @Override
                public Object convert(Class aClass, Object value) {
                    if (value == null || "".equals(value)){                   
                        return null;
                    }
                    Date parse = null;                
                    try {
                        if (value instanceof String) {
                            String dateValue = value.toString().trim();
                            int length = dateValue.length();
                            DateFormat formatter = null;
                            if (length <= 10) {
                                formatter = new SimpleDateFormat("yyyy-MM-dd", new DateFormatSymbols(Locale.CHINA));
                                return formatter.parse(dateValue);
                            }
                            if (length <= 19) {
                                formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", new DateFormatSymbols(Locale.CHINA));
                                return formatter.parse(dateValue);
                            }
                            if (length <= 23) {
                                formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS", new DateFormatSymbols(Locale.CHINA));
                                return formatter.parse(dateValue);
                            }                        
                        }
                        if(value instanceof Long){
                            return new Date((long)value);
                        }
    
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return parse;
                }
            }, java.util.Date.class);
    
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog