gpt4 book ai didi

java - 如何在 Vaadin 的另一个类中使用路由器布局类的变量/方法?

转载 作者:行者123 更新时间:2023-12-01 18:30:05 25 4
gpt4 key购买 nike

我正在使用Vaadin 14.0.3。我有一个带有方法 someCode 的类 MainLayout 。我使用此类作为另一个名为 MainView 的类的布局。是否可以在MainView中使用someCode方法?示例如下:

public class MainLayout {
public void someCode() {
}
}

@Route(value = "main", layout = MainLayout.class)
public class MainView {
}

谢谢!

最佳答案

这是可能的,但这不一定是一个很好的实践,因为它将类紧密耦合。

也就是说,如果您使用 Spring,则可以将 MainLayout 设为 UIScoped Spring 组件,并在 MainView 中 Autowiring 它。

否则,您必须使用 getParent() 方法并将结果转换为 MainLayout。

@Override
public void onAttach(AttachEvent event) {
Optional<Component> parent = getParent();
while (parent.isPresent()) {
Component p = parent.get();
if (p instanceof MainLayout) {
MainLayout main = (MainLayout) p;
main.hello();
}
parent = p.getParent();
}
}

关于java - 如何在 Vaadin 的另一个类中使用路由器布局类的变量/方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60180043/

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