gpt4 book ai didi

java - 实现 RouterLayout 的类是否也可以定义为 @Route

转载 作者:行者123 更新时间:2023-11-30 12:06:40 26 4
gpt4 key购买 nike

我正在学习 Vaadin Flow (Vaadin v10),但对 Route(@Route 作为注解)和 RouterLayout 的概念有困难。

来 self 已经阅读过的文档 Vaadin's website !我无法找到特定问题的答案。

实现 RouterLayout 的类是否也可以定义为 @Route?

@Route("")
public class MainLayout extends Div implements RouterLayout {
}

请(如果可能)提供对某些文档的引用。据我了解,RouterLayout 旨在呈现其中的 View 。因此,如果需要,可以覆盖 public void showRouterLayoutContent(HasElement content) 方法以创建所需的布局。因此,将本质上定义 View 的 @Route 注释与 RouterLayout 混合使用没有意义吗?

或者是吗?如果RouterLayout可以和@Route注解一起使用,说明layout也是view;有人可以为我提供一个简单的场景吗?

最佳答案

就像你说的 - 在概念层面上,同时拥有这两个 @Route 似乎很奇怪和 RouterLayout在同一个类(class)。 @Route注释放置在叶节点上。你可以有一个独立的 @Route , 将被放置在 <body> 中元素,或者你可以有一个嵌套布局,其中路由显示在一个或多个父布局内。可以使用注释的第二个参数指定父布局,如

@Route(value = "users", layout = Dashboard.class)
public class Users extends Div {
//...

,其中 Dashboard需要实现RouterLayout .因此,您将使用 http://server-address-here/users 访问此路由它会显示 Users里面Dashboard .

如果您想要一个更具描述性的 URL,您可以使用 @RoutePrefix 来实现它关于 Dashboard 的注释:

@RoutePrefix("dashboard")
public class Dashboard extends VerticalLayout implements RouterLayout {
// ...

现在您将到达 Usershttp://server-address-here/dashboard/users 查看而事情将与以前一样。

关于java - 实现 RouterLayout 的类是否也可以定义为 @Route,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55435864/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com