代码之家  ›  专栏  ›  技术社区  ›  cbmeeks

如何删除“”!“来自Vaadin 8的网址?

  •  1
  • cbmeeks  · 技术社区  · 8 年前

    我们有一个使用SpringBoot(1.5.9版本)运行的Vaadin 8应用程序。

    我有两个视图,分别是“视图1”和“视图2”。

    问题是,Vaadin只识别“example.com/”!view1“和”example.com/!VIEW2”。

    我想要的是“example.com/view1”和“example.com/view2”。尽管使用了SpringView等,但我似乎无法使其工作。如果我去掉“!”,我得到的就是404。从小路上。

    以下是我的一些配置设置。如果你需要更多,请告诉我。

    谢谢!

    XML

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    ....
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <vaadin.version>8.3.1</vaadin.version>
    </properties>
    ....
    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-spring-boot-starter</artifactId>
    </dependency>
    

    应用配置.java

    @SpringBootConfiguration
    @ComponentScan("com.example")
    @EntityScan("com.example")
    @EnableVaadin
    @EnableVaadinServlet
    public class AppConfiguration {
    }
    

    爪哇

    @SpringUI
    @Theme("valo")
    public class AppUI extends UI {
        ....
        @PostConstruct
        private void setup() {
            Navigator navigator = new Navigator(this, this);
            navigator.addView("", welcomeView);
            navigator.addView("view1", view1View);
            navigator.addView("view2", view2View);
        }
    

    VIEW1和VIEW2

    @SpringComponent
    @UIScope
    @SpringView(name = View1View.NAME, ui = AppUI.class)
    public class View1View extends VerticalLayout implements View, Serializable {
        public static final String NAME = "view1";
        ....
    
    @SpringComponent
    @UIScope
    @SpringView(name = View2View.NAME, ui = AppUI.class)
    public class View2View extends VerticalLayout implements View, Serializable {
        public static final String NAME = "view2";
        ....
    
    1 回复  |  直到 8 年前
        1
  •  0
  •   cbmeeks    8 年前

    哦,我的话。我看了一整天,却不知道自己的答案。

    添加 @PushStateNavigation 到您的UI元素修复了问题。

    希望这个答案能帮助别人。