我在Wicket的DateTextField中遇到了问题。我想将其默认设置为空,null,因此可以在有人选择日期之后选择日期。但默认情况下,它会将值设置为当天。如何“清除”它在这个datetextfield中没有任何东西?这是我的Datefield代码:
DateField date_insert_date_from = new DateField("insert_date_from", new PropertyModel(this, "date")) {
/**
* Format date to yyyy-MM-dd pattern.
*/
@Override
protected DateTextField newDateTextField(String id, PropertyModel dateFieldModel) {
return DateTextField.forDatePattern(id, dateFieldModel, "yyyy-MM-dd");
}
};
form.add(date_insert_date_from);
答案 0 :(得分:3)
正如@kan所说,你需要确保datefield的modelobject为null
。
这样做的简单方法是:
DateField date_insert_date_from = new DateField("insert_date_from", new Model<Date>(null));
现在,如果有人在日期字段中输入日期并提交表单,则模型将包含所选日期,您可以通过写入来检索它:
Date chosenDate = date_insert_date_from.getModelObject();
如果要像使用属性模型那样使用属性模型,则需要确保属性模型的作用对象(在您的情况下为this
)具有能够保存日期和getter / setter方法的字段对于那个领域。
在您的情况下,this.date
应使用null
初始化,而this
应该
public Date getDate()
和
public void setDate(Date date)
方法