我对使用自定义空值的Vaadin DateField有问题。
LocalDate emptyDate = LocalDate.parse("1900-01-01");
DateField field = new DateField()
{
@Override
public boolean isEmpty()
{
return getValue() == null || getValue().equals(emptyDate);
}
@Override
public LocalDate getEmptyValue()
{
return emptyDate;
}
};
field.setPlaceholder("yyyy-MM-dd");
field.setValue(emptyDate); // Shows "1900-01-01" instead of placeholder
field.setValue(null); // Shows placeholder "yyyy-MM-dd"
我希望在value等于空值时看到占位符,但是仅在value为null时才起作用。 DateField#setPlaceholder的文档指出“ 设置占位符文本。占位符是当字段否则为空以提示用户输入时显示的文本。”,因此这似乎不起作用一个人会期望吗?
覆盖#formatDate(LocalDate)也不起作用:
@Override
protected String formatDate(LocalDate value)
{
if (isEmpty())
{
return getPlaceholder();
}
else
{
return super.formatDate(value);
}
}
使用Vaadin 8.6.1