如何通过JAVA api仅使用其id来访问ZK组件?

时间:2016-03-07 14:34:53

标签: java zk

我必须从完整加载的页面搜索zkcomponent,它可能有许多嵌套窗口和许多级别,但我只有组件的id,因为一次动态生成完整的页面。我必须找到具有特定id的组件或搜索组件,比如说FirstName。

我正在使用Path.getComponent(“/ FirstName”);但它返回null。有没有办法在ZK框架中找到没有任何父ID的页面组件?

1 个答案:

答案 0 :(得分:0)

不确定是否有一个简单的解决方案,但一个不简单的解决方案将递归地通过树....

public Component find(Component component, String id) {
    if (component instanceof IdSpace) {
        Component found = component.query("#" + id);
        if (found != null) return found;
    }

    for(Component child : component.getChildren()) {
        Component found = find(child, id);
        if (found != null) return found;
    }

    return null;
}

您可以使用... Component comp = find( someComponent.getRoot(), myId);

开始

换句话说,浏览树并在每个新的id空间中查询您的id。如果找不到,请深入树下。当然,这需要你的id在整个树上是唯一的,而不仅仅是在它的idids空间内。