0

私は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 コンポーネントを取得し、次は取得しないようです。

私は何を間違っていますか?

4

1 に答える 1