我有一个带有java.util.Calendar类型字段的bean。我正在扩展FormFieldFactory类以适当地呈现其余字段,但是我不确定如何使用PopupDateField将字段呈现为java.util.Calendar类型。
发布于 2012-11-03 16:50:10
不久前,我创建了一个为java.sql.Date修改的自定义版本的PopupDateField。我个人会使用java.util.Date,但决定权不在我手中。在我的例子中,最简单的部分是java.sql.Date是java.util.Date的子类,而java.util.Calendar不是。
我打算描述我对日历派生类所做的修改,但我意识到它可能不会起作用,因为PopupDateField不是从日期派生的。
我从来没有使用过BeanItems,但是您可以尝试创建一个自定义Property来作为Calendar的包装器,也许可以创建您自己的VaadinPropertyDescriptor来将该字段绑定到您的自定义属性。
这个答案本应更加明确,但我希望它至少是有一定帮助的。如果有可能影响bean结构,我建议您将Calendar切换为Date,并仅在需要时使用带有Date的Calendar。
发布于 2013-07-10 05:32:28
如果您正在构建web应用程序-您可以向域添加一个临时日期属性,在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);
}https://stackoverflow.com/questions/13203644
复制相似问题