我使用vaadin-spring。我创建了public abstract class AbstractBasicVerticalLayoutWithMenu extends HorizontalLayout implements View
两个普通类来扩展它。在抽象类 I @Autowire
Menu 组件中定义:
@UIScope
@SpringComponent
public class Menu extends CssLayout
两个类都有注释
@UIScope
@SpringView
我在其中一个视图中有一个非常奇怪的问题,即我的菜单组件没有显示。
我做了一些挖掘并添加了日志记录。上
@Override
public void enter(ViewChangeEvent event)
方法我添加了日志记录并尝试了很多方法,我发现当我执行 this.getComponentIndex(menu)
错误的视图组件时索引为-1!
有趣的是,如果我从导航器中删除正确显示的视图(我这样做了:),getNavigator().addView(FirstTesterView.VIEW_NAME, firstTesterView);
那么这个不正确的视图就会恢复正确。
我不知道为什么,但看起来只有扩展 acstract 的实例化类中的第一个获得 @Autowired 组件,而不是下一个。
我做错了什么?