0

我想自定义不同步消息,如下所示:https ://vaadin.com/book/vaadin7/-/page/application.errors.html

我有:

public class SpringApplicationServlet extends AbstractApplicationServlet {
...
@Override
protected SystemMessages getSystemMessages() {
  logger.debug("getSystemMessages()");
  CustomizedSystemMessages m = new CustomizedSystemMessages();
  m.setOutOfSyncCaption("My custom caption");
  return m;
}
...

我清楚地看到 getSystemMessages() 没有被调用,但是在使用多个窗口时会显示带有标题“不同步”的红色通知。Vaadin的书说

您可以通过在 UI 类中实现 getSystemMessages() 方法来覆盖默认系统消息。

我怎么知道要覆盖哪个类getSystemMessages()SpringApplicationServlet似乎是最合适的

4

1 回答 1

0

根据https://vaadin.com/api/com/vaadin/Application.html#getSystemMessages 该方法应该在扩展的类中实现Application

所以现在它起作用了:

public class MainApplication extends Application {
...
  @Override
  public static SystemMessages getSystemMessages() {
  ...

尽管 Java 不允许覆盖静态方法,但 Vaadin 会产生异常并调用此方法(如果存在)。

于 2013-01-15T16:35:03.350 回答