org.apache.commons.beanutils.ConversionException: No value specified for 'Date'
2014-01-26 17:48
411 查看
环境:org.apache.commons.beanutils的版本号为1.8.3
注册时间转换器代码如下:
当提交的时间没有值的时候,会报出org.apache.commons.beanutils.ConversionException: No value specified for 'Date'错误,查看了apache源代码,发现原因是因为org.apache.commons.beanutils.converters.DateConverter转换String为Date时,发现是空值,即报出错误,源代码如下
org.apache.commons.beanutils.converters.DateTimeConverter类第321行开始
解决方案:
自己写个日期转换类,由于org.apache.commons.beanutils.converters.DateConverter类被标记为final,不可继承,所以继承DateConverter的父类DateTimeConverter,类的内容是在org.apache.commons.beanutils.converters.DateConverter内容上增加了对convertToType方法的重载,完整代码如下
注册时间转换器代码如下:
org.apache.commons.beanutils.converters.DateConverter dateConverter = new org.apache.commons.beanutils.converters.DateConverter(); dateConverter.setUseLocaleFormat(true); dateConverter.setPatterns(new String[]{Constants.CONTEXT_KEY_FORMAT_DATE_VALUE, Constants.CONTEXT_KEY_FORMAT_DATETIME_VALUE}); ConvertUtils.register(dateConverter, Date.class);
当提交的时间没有值的时候,会报出org.apache.commons.beanutils.ConversionException: No value specified for 'Date'错误,查看了apache源代码,发现原因是因为org.apache.commons.beanutils.converters.DateConverter转换String为Date时,发现是空值,即报出错误,源代码如下
org.apache.commons.beanutils.converters.DateTimeConverter类第321行开始
String stringValue = value.toString().trim(); if (stringValue.length() == 0) { return handleMissing(targetType); }
解决方案:
自己写个日期转换类,由于org.apache.commons.beanutils.converters.DateConverter类被标记为final,不可继承,所以继承DateConverter的父类DateTimeConverter,类的内容是在org.apache.commons.beanutils.converters.DateConverter内容上增加了对convertToType方法的重载,完整代码如下
package com.lmiky.jdp.base.converter; import java.util.Date; import org.apache.commons.beanutils.converters.DateTimeConverter; /** * 日期转换器 * @author lmiky * @date 2014-1-26 */ public class DateConverter extends DateTimeConverter { public DateConverter() { } public DateConverter(Object defaultValue) { super(defaultValue); } /* (non-Javadoc) * @see org.apache.commons.beanutils.converters.AbstractConverter#getDefaultType() */ @SuppressWarnings("rawtypes") protected Class getDefaultType() { return Date.class; } /* * (non-Javadoc) * @see org.apache.commons.beanutils.converters.DateTimeConverter#convertToType(java.lang.Class, java.lang.Object) */ @SuppressWarnings("rawtypes") @Override protected Object convertToType(Class arg0, Object arg1) throws Exception { if (arg1 == null) { return null; } String value = arg1.toString().trim(); if (value.length() == 0) { return null; } return super.convertToType(arg0, arg1); } }
相关文章推荐
- org.apache.commons.beanutils.ConversionException: No value specified for 'Date'
- org.apache.commons.beanutils.ConversionException: No value specified for 'Date'
- org.apache.commons.beanutils.ConversionException: DateConverter does not support default String to '
- No value specified for 'Date' BeanUtils.copyProperties 日期为空 转型错误
- org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'id' in 'cla
- apache BeanUtils No value specified for 'Date'
- no value specified for 'date' 的解决方法
- 是用BeanUtils做工程出错org.apache.commons.beanutils.ConversionException: DateConverter does not support def
- org.apache.commons.beanutils.ConversionException: No value specified解决办法
- org.apache.commons.beanutils.ConversionException: No value specified解决办法
- org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'funcSetId' in 'class java.lang.Integer'
- org.apache.commons.beanutils.ConversionException: No value specified
- 使用BeanUtils.copyproperties发生 No value specified for 'Date'异常
- mybaits异常:org.apache.ibatis.binding.BindingException: Parameter 'date' not found.
- org.apache.commons.fileupload.FileUploadBase$InvalidContentTypeException: the request doesn't contai
- org.apache.commons.beanutils.ConversionException:
- org.apache.commons.beanutils.ConversionException 的卑鄙解决方法
- org.apache.struts.chain.commands.InvalidPathException: No action config found for the specified url.
- org.apache.jasper.JasperException: jsp:getProperty for bean with name 'data'. N
- org.apache.ibatis.reflection.ReflectionException: There is no getter for propert