作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 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/
我是一名优秀的程序员,十分优秀!