如何在Vaadin UI中的子视图之间导航。我希望网站上的标题保持静态,就像母版页和内容视图一样,使用导航进行更改。我怎么能在Vaadin那样做呢。
答案 0 :(得分:2)
您可以简单地使用标题(以及其他需要的东西)设计您的UI,以及将作为更改内容的占位符的组件。 然后我添加一个接收要显示的新内容的方法,并将其放在占位符中。 这是一些代码:
public class MyUI extends UI implements ErrorHandler {
// I usually use a layout as a place holder
private VerticalLayout content;
...
@Override
public void init(VaadinRequest request) {
...
content = new VerticalLayout();
content.setSizeFull();
final VerticalLayout layout = new VerticalLayout(header, menu, content, footer);
layout.setMargin(true);
setContent(layout);
}
public void changeContent(Component view) {
content.removeAllComponents();
content.addComponent(view);
content.setComponentAlignment(view, Alignment.MIDDLE_CENTER);
}
}
答案 1 :(得分:0)
如果您在应用程序中需要支持浏览器的书签和导航(向后和向前按钮),则需要使用book of vaadin中描述的URIFragments。
使用它的常用方法是使用导航器:
public class NavigatorUI extends UI {
Navigator navigator;
protected static final String MAINVIEW = "main";
@Override
protected void init(VaadinRequest request) {
getPage().setTitle("Navigation Example");
// Create a navigator to control the views
navigator = new Navigator(this, this);
// Create and register the views
navigator.addView("", new StartView());
navigator.addView(MAINVIEW, new MainView());
} }
您的视图需要按照book of vaadin
如果你使用Spring,你也可以使用一个插件,比如SpringVaadinIntegration或vaadin4spring来使这更容易,并且每个插件都有其他一些优点。