gpt4 book ai didi

java - 如何重置 vaadin 14 中的应用程序布局?

转载 作者:行者123 更新时间:2023-12-02 00:37:55 25 4
gpt4 key购买 nike

我在 vaadin 14 中使用应用程序布局组件,并将 /admin 路由设置为默认 View 。我设置了一个选项卡组件来切换这些 View 的主要区域内容。它工作得很好,但是,我不知道如何将 /admin 路由重置为其初始状态。我尝试设置一个 anchor 以转到“/admin”,但它会刷新页面。

主视图

@Route("admin")
public class MainView extends AppLayout {

@Autowired
public MainView() {
setPrimarySection(AppLayout.Section.DRAWER);
addToDrawer(createMenuTabs());
setContent(customView);
}

private static Tabs createMenuTabs() {
final Tabs tabs = new Tabs();
tabs.setOrientation(Tabs.Orientation.VERTICAL);
tabs.add(getAvailableTabs());
return tabs;
}

private static Tab[] getAvailableTabs() {
final List<Tab> tabs = new ArrayList<>(2);
tabs.add(createTab(VaadinIcon.HOME, "Home", CustomView.class));
tabs.add(createTab(VaadinIcon.EDIT, "Events", EventsView.class));

return tabs.toArray(new Tab[tabs.size()]);
}

private static Tab createTab(VaadinIcon icon, String title,
Class<? extends Component> viewClass) {
return createTab(populateLink(new RouterLink(null, viewClass), icon, title));
}

private static Tab createTab(Component content) {
final Tab tab = new Tab();
tab.add(content);
return tab;
}

private static <T extends HasComponents> T populateLink(T a, VaadinIcon icon, String title) {
a.add(icon.create());
a.add(title);
return a;
}
}

我使其工作的唯一方法是将路线添加到自定义 View 。

自定义 View

@Route(value = "admin/home", layout = MainView.class)
public class CustomView extends VerticalLayout...

但这会将 url 更改为 .../admin/home

我只想返回 /admin 而不刷新。我希望我只是在文档中遗漏了一些简单的内容。

最佳答案

我最终通过给我的 MainView 一个 @RoutePrefix("admin") 而不是 @Route 来解决这个问题,然后在我的“home” View 中 @Route("") 路线。这种方式不会重新加载或重置应用程序,而只是返回到主页 URL,而无需刷新。

关于java - 如何重置 vaadin 14 中的应用程序布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57960913/

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