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 に答える