我有一个带有 type 字段的 bean java.util.Calendar
。我正在扩展FormFieldFactory
类以适当地呈现剩余的字段,但我不确定如何使用 PopupDateField 来呈现要键入的字段java.util.Calendar
。
问问题
486 次
2 回答
1
如果您正在构建一个 Web 应用程序 - 您可以向域添加一个瞬态 Date 属性,在 setter 和 getter 上执行日历到日期转换以获取或更新原始字段。希望有帮助!!!
@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);
}
于 2013-07-09T21:32:28.200 回答
1
不久前,我创建了一个自定义版本的PopupDateField
modified for java.sql.Date
。我个人会使用 java.util.Date,但决定权不在我手中。在我的例子中,最简单的部分是它不是whilejava.sql.Date
的子类。java.util.Date
java.util.Calendar
我将描述我对 PopupDateField 派生类所做的修改,但我意识到它可能不会起作用,因为 Calendar 不是从 Date 派生的。
我从来没有玩过 BeanItems,但您可以尝试创建一个自定义Property
来作为包装器,Calendar
并且也许创建您自己的VaadinPropertyDescriptor
以将该字段绑定到您的自定义属性。
这个答案是为了更明确,但我希望它至少有点帮助。如果您有可能影响 bean 结构,我建议您将 Calendar 切换为 Date 并仅在需要时将 Calendar 与 Date 一起使用。
于 2012-11-03T08:50:10.083 回答