【问题标题】:content layout navigation and linkable urls内容布局导航和可链接网址
【发布时间】:2017-04-19 05:39:14
【问题描述】:

我的 Vaadin 应用程序正在使用自定义侧导航抽屉小部件,该小部件将按钮事件路由到导航器。然后这些视图显示在 contentLayout 区域中。 contentLayout 使页面可以重复使用页面顶部的工具栏和导航抽屉,而无需重新加载它们。

导航器更新URL片段,例如:

主页 = http://example.com/#home

仪表板页面 = http://example.com/#home/dashboard

我现在处于需要在 contentLayout 区域内实现子导航的阶段。因此,如果用户单击仪表板中的链接,它可以在添加新 URL 片段信息的同时显示新视图:

仪表板 + 新闻页面 = http://example.com/#home/dashboard/news

并且还生成一个永久链接供用户轻松分享或收藏:

仪表板 + 新闻页面 + 新闻项目 = http://example.com/#home/dashboard/news/?item=123543432

我正在考虑对调用使用订阅/发布模式来导航 contentLayout,但我担心并发用户以及发布事件是否可能被其他用户使用。关于如何处理用户会话的分离,是否有明确定义的指南? (例如,假设从不使用“静态”?)

其次,应用程序如何能够处理像新闻项目示例那样的“永久链接”?我只见过 Navigator 用于从事件中被动修改 URL,它可以主动处理对特定 URL 的请求吗?或者 Vaadin 的另一个组件是用来处理这个问题的?也许通过 RequestListener 来绑定它?

我现在主要关心的是子导航解决方案。我不想将导航器注入到可能需要打开另一个视图或关闭其视图的每个视图中。

【问题讨论】:

标签: java vaadin vaadin7


【解决方案1】:

当您不想使用导航器时,您可以自己处理 URL 内容。

  • 然后您必须侦听 URI 片段更改。
  • 左侧的“链接”并不是真正的链接,而是注册了 onclick 事件的按钮,然后您可以修改页面

Here 是相关文档。

关于用户分离:

  • 默认完成
  • 当您有一些事件总线/队列时,如果您希望将消息限制为一个会话,则必须添加一个会话 ID

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多