【发布时间】:2021-06-01 15:26:40
【问题描述】:
我需要在应用程序屏幕之间创建一个缓冲区。 我想在 mainLayout 中创建一个缓冲区,但我无法从子层访问它
我试图通过'static'来做,那么缓冲区对所有用户都是通用的,这是不正确的
cookies也不适合,因为数据结构复杂
带有静态缓冲区的代码:
在示例中,创建了一个表,当你选择表中的元素时,将它们写入缓冲区,如果缓冲区中有元素,则将它们标记在表中
MainLayout.java
public class MainLayout extends AppLayout implements RouterLayout {
public static Set<Test> buffer;
public MainLayout() {
buffer = new HashSet<Test>();
/*...*/
}
}
BasicView.java
@Route(value = "BasicView", layout = MainLayout.class)
@RouteAlias(value = "/BasicView", layout = MainLayout.class)
public class BasicView extends VerticalLayout {
private final Grid<Test> tests;
public BasicView(@Autowired TestService){
/*...*/
tests = new Grid<>(Test.class, false);
tests.addSelectionListener(event -> {
MainLayout.buffer = event.getAllSelectedItems();});
/*...*/
for(Test el : MainLayout.buffer)
{
tests.select(el);
}
/*...*/
}
}
【问题讨论】:
-
能否请您添加代码(例如带有静态“缓冲区”的代码,尽管它失败了),以便我们对其进行改进。至少对我来说,不清楚您所说的“缓冲区”是什么意思。
标签: java cookies buffer vaadin