【发布时间】:2022-01-05 01:01:28
【问题描述】:
我想更改 LocaleChangeObserver 中 Vaadin 14 Grid 列中 LocalDateTime 值的格式。
工作是这样的:
-
复制类
com.vaadin.flow.data.renderer.LocalDateTimeRenderer<SOURCE> -
像这样实现我自己的方法
setLocale:public void setLocale(Locale newLocale) { formatter = formatter.withLocale(newLocale); } -
像这样从
LocaleChangeObserver.localeChange实现调用setLocale:public void localeChange(LocaleChangeEvent event) { myLocalDateTimeRenderer.setLocale(event.getLocale()); }
这是可行的,但我不想复制 Vaadin 类。是否有更优雅甚至“预期”的方式来实现这一目标?
我也尝试过(什么不起作用)是这样的:将 DateTimeFormatter 放入原始 Vaadin com.vaadin.flow.data.renderer.LocalDateTimeRenderer 实例,然后从 localeChange 方法调用 dateTimeFormatter.withLocale。这不起作用,因为withLocale 方法返回DateTimeFormatter 的新实例,而不是调整现有实例。并且创建我自己的 DateTimeFormatter 扩展将不起作用,因为该类是最终的。
【问题讨论】:
标签: vaadin vaadin-flow vaadin-grid vaadin14