我使用vaadin 6.6和joda DateTime 1.6.2 我使用How to use DateField with Joda DateTime property?
中描述的解决方案值设置/获取正确,但不幸的是我得到转换异常:
异常是在BeanValidationValidator中抛出:
方法是JodaDateTime,值是java.util.Date JodaTime不能从Date分配 JodaTime没有String构造函数
private Object convertValue(Object value) throws Property.ConversionException { // Try to assign the compatible value directly if (value == null || method.getType().isAssignableFrom(value.getClass())) { return value; } else { try { // Gets the string constructor final Constructor constr = method.getType().getConstructor( new Class[] { String.class }); return constr.newInstance(new Object[] { value.toString() }); } catch (final java.lang.Exception e) { throw new Property.ConversionException(e); } } }
你有什么想法吗?
答案 0 :(得分:0)
我自己没有尝试过这个,但是从我在BeanValidationValidator中看到的内容,您还需要扩展它,并在JodaTime和java.util.Date之间添加隐式转换。
至少BeanValidationValidator.validate(Object)方法需要处理此转换。
答案 1 :(得分:0)
看看PopupDateTimeField.java 您也可以使用PropertyConverter