Java 从Jar加载ZUL

Java 从Jar加载ZUL,java,zk,zul,Java,Zk,Zul,有人知道如何从罐子里装Zul吗? 我有一个包含Zul的图书馆项目。 目前我使用createComponents(字符串uri、组件父级、映射参数),但我不知道或者不能引用jar中的uri 我现在使用: public static Component createComponentsFromJar(final String path, final Component parent, final Map<?,?> arg) throws IOException { final

有人知道如何从罐子里装Zul吗? 我有一个包含Zul的图书馆项目。 目前我使用createComponents(字符串uri、组件父级、映射参数),但我不知道或者不能引用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);
}
公共静态组件createComponentsFromJar(最终字符串路径、最终组件父级、最终映射参数)引发IOException{
final InputStream resourceAsStream=ComponentHelper.class.getClassLoader().getResourceAsStream(路径);
final PageDefinition PageDefinition=Executions.getCurrent().getPageDefinition直接(新的InputStreamReader(resourceAsStream),“zul”);
resourceAsStream.close();
返回Executions.createComponents(页面定义、父级、参数);
}

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

Executions.createComponents将使用ZK特定URI(请参阅),其中ZK特定URI中的“~./”将获得“classpath/web/”下的文件,假设您的zul页面位于“src/web/zul/pages”下,如下所示:

Executions.createComponents("~./zul/pages/zulInJar.zul", parent, null);

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

Executions.createComponents("~./zul/pages/zulInJar.zul", parent, null);

为什么要将web项目与纯java编码混合使用我从未见过这种类型的编码我制作了一个动态向导,您可以向向导中添加页面,如:pages.add(new-WizardPageConfig(SOMEID,“/pages/personWizard/pageStart.zul”);此向导逻辑在我们的框架中,向导的文件上载页面是默认的zul,它也应该在框架中。这是小提琴类的东西吗?我不能小提琴,因为我认为FZKFIDLE不支持使用JAR:D@subodh这是在ZK框架中创建组件的一种非常常见的方法,您可以在中看到一个示例。卡尼,这是个很好的问题。我希望你能得到答案,我会仔细考虑的。谢谢本的回答