私はvaadin-springを使用しています。私が作成public abstract class AbstractBasicVerticalLayoutWithMenu extends HorizontalLayout implements View
し、それを拡張する2つの通常のクラスがあります。抽象クラス I@Autowire
メニュー コンポーネントで次のように定義されます。
@UIScope
@SpringComponent
public class Menu extends CssLayout
両方のクラスに注釈が付けられています
@UIScope
@SpringView
ビューの 1 つで、メニュー コンポーネントが表示されないという非常に奇妙な問題があります。
掘り下げてログを追加しました。の上
@Override
public void enter(ViewChangeEvent event)
this.getComponentIndex(menu)
メソッド ログを追加し、多くのことを試しましたが、間違ったビュー コンポーネントを実行すると、インデックスが -1になることがわかりました 。
興味深いことに、ナビゲーターから正しく表示されたビューを削除すると (私はそうします:) getNavigator().addView(FirstTesterView.VIEW_NAME, firstTesterView);
、この誤ったビューが正しい状態に戻ります。
理由はわかりませんが、 acstract を拡張するインスタンス化されたクラスの最初だけが @Autowired コンポーネントを取得し、次は取得しないようです。
私は何を間違っていますか?