Vaadin通过Link加载另一个视图?

JDe*_*Dev 2 vaadin vaadin7

请告诉我,是否有可能.

我有一个链接.

Link jobNameLink = new Link(jobName, new ExternalResource("opla"));
Run Code Online (Sandbox Code Playgroud)

当您点击此链接下载不同的视图时,我需要.如果不可能,这个问题的可能解决方案是什么?

Hen*_*ola 9

您有两种选择:

使用Button而不是Link:

Button button = new Button("Click me!", new Button.ClickListener() {
    @Override
    public void buttonClick(ClickEvent clickEvent) {
        // Logic for opening correct view
    }
});
button.setStyleName(Reindeer.BUTTON_LINK);
Run Code Online (Sandbox Code Playgroud)

或者使用UriFragmentUtility(Vaadin 6)或UriFragmentChangedListener(Vaadin 7)监听URI片段更改,然后您可以使用普通链接:这是Vaadin 7的示例:

Page.getCurrent().addUriFragmentChangedListener(new Page.UriFragmentChangedListener() {
    @Override
    public void uriFragmentChanged(Page.UriFragmentChangedEvent e) {
         System.out.println("fragment changed: " + e.getUriFragment());
    }
});


new Link("click me!", new ExternalResource("#asdf"))
Run Code Online (Sandbox Code Playgroud)