Spring boot 如何将springboot错误页面重定向到vaadin错误UI?

Spring boot 如何将springboot错误页面重定向到vaadin错误UI?,spring-boot,vaadin8,Spring Boot,Vaadin8,我在vaadin UI中有一个错误页面。但有时我们会写一个错误的url,我们会看到springboot错误页面 在这种情况下,我想显示vaadin UI错误页面。顺便说一下,我已经为springboot提供了一个404页面。但我不想表现出来 这是我的vaadin错误UI。但这适用于应用程序。() 有时我会这样写一个无效的url: 在本例中,我想重定向vaadin错误页面(),但springboot将我重定向到呈现的404页面 有可能吗 @UIScope @SpringView(name = Er

我在vaadin UI中有一个错误页面。但有时我们会写一个错误的url,我们会看到springboot错误页面

在这种情况下,我想显示vaadin UI错误页面。顺便说一下,我已经为springboot提供了一个404页面。但我不想表现出来

这是我的vaadin错误UI。但这适用于应用程序。()

有时我会这样写一个无效的url:

在本例中,我想重定向vaadin错误页面(),但springboot将我重定向到呈现的404页面

有可能吗

@UIScope
@SpringView(name = ErrorView.VIEW_NAME)
public class ErrorView extends VerticalLayout implements View {

    public static final String VIEW_NAME = "error";

    private Label explanation;

    public ErrorView() {
        Label header = new Label("The view could not be found");
        header.addStyleName(MaterialTheme.LABEL_H1);
        addComponent(header);
        addComponent(explanation = new Label());
    }

    @Override
    public void enter(ViewChangeListener.ViewChangeEvent event) {
        explanation.setValue(String.format("You tried to navigate to a view ('%s') that does not exist.", event.getViewName()));
        getUI().getNavigator().navigateTo(ErrorView.VIEW_NAME);
    }
}

您可以将404/500页面放在resources/error/folder下,当出现错误时,SpringBoot将自动重定向这些页面。我认为SpringNavigator可以解决您的问题。在定义导航器时,还可以定义错误视图。请参见下面的示例

@SpringUI(path = "ui")
public class DemoUI extends com.vaadin.ui.UI {
    @Override
    protected void init(VaadinRequest vaadinRequest) {
        SpringNavigator navigator = new SpringNavigator();
        navigator.setErrorView(new ErrorView());
        setNavigator(navigator);
    }
}

抱歉,但是vaadin UI不是html页面。我知道当我们在vaadin路径中使用不同的url时,您的suggestion.navigator对象为null,因为这是一种com.vaadin.navigator类型,用于在vaadin页面中导航。