VAADIN 7:导航子视图

时间:2014-12-07 19:00:18

标签: user-interface uinavigationcontroller vaadin

如何在Vaadin UI中的子视图之间导航。我希望网站上的标题保持静态,就像母版页和内容视图一样,使用导航进行更改。我怎么能在Vaadin那样做呢。

2 个答案:

答案 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

中的说明实现View界面

如果你使用Spring,你也可以使用一个插件,比如SpringVaadinIntegrationvaadin4spring来使这更容易,并且每个插件都有其他一些优点。