4

有人知道如何从 Jar 中加载 Zul 吗?我有一个包含 Zul 的图书馆项目。目前我使用 createComponents(String uri, Component parent, Map arg) 但我不知道或无法引用 jar 中的 uri。


我现在用:

public static Component createComponentsFromJar(final String path, final Component parent, final Map<?,?> arg) throws IOException {
    final InputStream resourceAsStream = ComponentHelper.class.getClassLoader().getResourceAsStream(path);
    final PageDefinition pageDefinition = Executions.getCurrent().getPageDefinitionDirectly(new InputStreamReader(resourceAsStream), "zul");
    resourceAsStream.close();
    return Executions.createComponents(pageDefinition, parent, arg);
}

有人知道这种创建新页面的方法存在一些问题吗?一些绑定问题还是什么?

4

1 回答 1

6

Executions.createComponents 将与 ZK 特定 URI 一起使用(请参阅Inter-Application Communication),其中 ZK 特定 URI 中的“~./ ”将获取“classpath/web/ ”下的文件,假设您的 zul 页面位于“src/web/zul”下/pages”如下:

src下的zul页面

并将 src 文件夹导出为 jar,然后您可以使用 jar 中的 zul 文件创建组件,如下所示:

Executions.createComponents("~./zul/pages/zulInJar.zul", parent, null);
于 2013-02-17T01:18:19.907 回答