でUIを取得できません、私はこの方法で問題なくMainScreenをロード:は私のプログラムの最初のバージョンでは春
@SpringUI
@Viewport("user-scalable=no,initial-scale=1.0")
@Theme("mytheme")
public class MyUI extends UI {
@Autowired
MainScreen mainScreen;
public void showMainView() {
addStyleName(ValoTheme.UI_WITH_MENU);
setContent(mainScreen);
getNavigator().navigateTo(getNavigator().getState());
}
public static MyUI get() {
return (MyUI) UI.getCurrent();
}
}
:
public class MyUI extends UI {
public void showMainView() {
addStyleName(ValoTheme.UI_WITH_MENU);
setContent(new MainScreen(MyUI.this));
mainScreen.setUI(MyUI.this);
}
public static MyUI get() {
return (MyUI) UI.getCurrent();
}
}
しかし、今、私はそれを変更しました@Autowired経由でMainScreenを入手するには、MainScreenのコンストラクターをクリアする必要がありましたが、は、ナビゲーターに必要なUIを取得する方法がわかりません。
私はちょうどヌル両方を取得します。
@Component
@UIScope
public class MainScreen extends HorizontalLayout {
public MainScreen() {
UI ui = UI.getCurrent(); // is null
MyUI ui2 = MyUI.get(); // is null
CssLayout viewContainer = new CssLayout();
viewContainer.addStyleName("valo-content");
viewContainer.setSizeFull();
final Navigator navigator = new Navigator(ui, viewContainer);
// ...
}
通常、[ナビゲータ](https://vaadin.com/docs/-part/framework/advanced/advanced-navigator.html)は、UIを初期化するときに、かなり接続されているため構成されていますそれを行うための論理的な場所の種類。 [Vaadin wikiで素早くspring-vaadinの統合を確認することもできます(https://vaadin.com/wiki/-/wiki/Spring+Vaadin/I+-+Getting+Started+with+Vaadin+Spring+and+ Spring + Boot)(5つのセクションすべてを必ず読んでください.3番目のセクションはナビゲーションに関連しています)。 – Morfic