【问题标题】:Vaadin 10+: How can I disable Router?Vaadin 10+:如何禁用路由器?
【发布时间】:2018-11-20 22:49:10
【问题描述】:

我正在尝试将 Vaadin 8 应用程序迁移到 Vaadin 11。

我正在尝试使用 VaadinServlet 和 UI:

@WebServlet(value = "/*", asyncSupported = true)
@VaadinServletConfiguration(productionMode = false, ui = TestUi.class)
public class TestServlet extends VaadinServlet {
}

public class TestUi extends UI {
  @Override
  protected void init(VaadinRequest request) {
    add(new Label("Test"));
  }
}

我明白了:

我可以/我必须禁用路由器吗?

我仔细检查了,没有使用@Route 注释的类。

更新:migration guide 声明:

所以我仍然对在这种情况下应该放置 Route 注释的原因和位置感到困惑。

【问题讨论】:

  • 您要禁用路由器的原因是什么?我不认为这是可能的。如果您不想通过 URL 进行导航,则至少需要 @Route("") 默认 URL。
  • 我想从 8 升级到尽可能少的更改。旧应用程序没有使用 Navigator,所以我认为 Routes 也可能是可选的。我会尽量让它与@Route("")一起工作。
  • “我想从 8 升级到尽可能少的改动。”
  • 谢谢大图。我应该说迁移,我猜。但是,我确实说“尽可能少”,而不是“最小的变化”;)。我确实阅读了迁移指南,并且已经花了几天时间迁移应用程序的许多部分。应该从导航部分开始。

标签: vaadin vaadin10


【解决方案1】:

您需要在 Vaadin 10 中至少有一个 @Route。由于您正在迁移,您可能需要在此处查看文档:https://vaadin.com/docs/v10/flow/migration/1-migrating-v8-v10.html

【讨论】:

  • 感谢您的确认。鉴于您是 Vaadin 开发人员,我相信您的话。我现在对使用 VaadinServlet / UI 是否有意义感到困惑。
  • 迁移指南指出:“您当然仍然可以自己配置 servlet,它的发生方式与以前相同”。 vaadin.com/docs/v11/flow/migration/3-general-differences.html
  • 这是 Vaadin 10 的重大变化之一。UI 及其 init 方法并不是应用程序的真正入口点。相反,您使用 Route 定义一个根组件并从那里构建。 VaadinServlet 仍然存在,您会自动获得一个,但如果您不需要,则无需触摸它,例如自定义引导或其他东西。
  • 是的,非常感谢,一旦我弄清楚了路由(通配符)参数,它现在开始运行良好。当我相当满意并确信它有效时,我会发布我的结果。我必须说,到目前为止,我对 Vaadin 11 的喜爱比 8 好得多。感觉就像我已经等待了 15 年的 java web 框架给我这种对 DOM、CSS 和 JavaScript 的清晰、直接的访问。
猜你喜欢
  • 1970-01-01
  • 2020-08-07
  • 1970-01-01
  • 2020-11-05
  • 1970-01-01
  • 2018-08-24
  • 2017-04-29
  • 2018-01-04
相关资源
最近更新 更多