Vaadin& Joda DateTime

时间:2011-05-26 09:12:32

标签: datetime jodatime vaadin

我使用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);
        }
    }
}

你有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我自己没有尝试过这个,但是从我在BeanValidationValidator中看到的内容,您还需要扩展它,并在JodaTime和java.util.Date之间添加隐式转换。

至少BeanValidationValidator.validate(Object)方法需要处理此转换。

答案 1 :(得分:0)

看看PopupDateTimeField.java 您也可以使用PropertyConverter