我使用vaadin 6.6和joda DateTime 1.6.2我使用在"如何将DateField与Joda DateTime属性一起使用?"中描述的解决方案?
值设置/获取正确,但不幸的是,我得到了转换异常:
BeanValidationValidator:内部引发异常
方法为JodaDateTime,值为java.util.DateJodaTime从日期起不可分配JodaTime没有字符串构造函数
private对象convertValue(对象值)throws Property.ConverrsionException{//尝试直接分配兼容值if(value==null||method.getType().isAssignableFrom(value.getClass()){返回值;}其他{尝试{//获取字符串构造函数final Constructor constr=method.getType().getConstructor(new Class[]{String.Class});return constr.newInstance(new Object[]{value.toString()});}catch(最终java.lang.Exception e){抛出新属性ConversionException(e);}}}
你有什么想法吗
我自己还没有尝试过,但从BeanValidationValidator中可以看出,您还需要扩展它,并添加JodaTime和java.util.Date.之间的隐式转换
至少BeanValidationValidator.validate(Object)方法需要处理此转换。
查看PopupDateTimeField.java您还可以使用PropertyConverter