首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vaadin:绑定私有java.util.Calendar项到PopupDateField

Vaadin:绑定私有java.util.Calendar项到PopupDateField
EN

Stack Overflow用户
提问于 2012-11-03 06:03:12
回答 2查看 485关注 0票数 1

我有一个带有java.util.Calendar类型字段的bean。我正在扩展FormFieldFactory类以适当地呈现其余字段,但是我不确定如何使用PopupDateField将字段呈现为java.util.Calendar类型。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-03 16:50:10

不久前,我创建了一个为java.sql.Date修改的自定义版本的PopupDateField。我个人会使用java.util.Date,但决定权不在我手中。在我的例子中,最简单的部分是java.sql.Datejava.util.Date的子类,而java.util.Calendar不是。

我打算描述我对日历派生类所做的修改,但我意识到它可能不会起作用,因为PopupDateField不是从日期派生的。

我从来没有使用过BeanItems,但是您可以尝试创建一个自定义Property来作为Calendar的包装器,也许可以创建您自己的VaadinPropertyDescriptor来将该字段绑定到您的自定义属性。

这个答案本应更加明确,但我希望它至少是有一定帮助的。如果有可能影响bean结构,我建议您将Calendar切换为Date,并仅在需要时使用带有Date的Calendar。

票数 1
EN

Stack Overflow用户

发布于 2013-07-10 05:32:28

如果您正在构建web应用程序-您可以向域添加一个临时日期属性,在setter & getter上执行日历到日期的转换,以获取或更新原始字段。希望这能有所帮助!

代码语言:javascript
复制
@Transient
private Datetime calendarExAsDate; // corresponds to @Column... private Calendar calendarEx property of the  domain.

 public DateTime getCalendarExAsDate() {
        if (this.getCalendarEx() == null) return null;
        return new DateTime(this.getCalendarEx().getTime());
    }

    public void setCalendarExAsDate(DateTime calendarExAsDate) {
        if (calendarExAsDate== null) return;
        this.calendarExAsDate = calendarExAsDate;
        Calendar cal = Calendar.getInstance();
        cal.setTime(calendarExAsDate.toDate());
        this.setCalendarEx(cal);
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13203644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档