在创建组件时以编程方式添加作曲家

Programmatically add composer while creating a component

我需要使用不同的作曲家从 ZUML 创建一个 window 组件。但我无法弄清楚如何以编程方式执行此操作。当我将作曲家应用于 ZUML 文件中的 window 时,它工作正常。

这个有效

dataTemplate.zul

<window id="dataTemplateWindow"
apply="dk.dataproces.cpraap.controllers.DataTemplateWindowController">
          ....

控制器

dataTemplateWindow = (Window) Executions.createComponents(
                "dataTemplate.zul", homeWindow, null);

我想做这样的事情

ZUML 中没有附加作曲家,而是以编程方式添加。

Map data = new HashMap();
data.put("composer","dk.dataproces.cpraap.controllers.DataTemplateWindowController");
dataTemplateWindow = (Window) Executions.createComponents("dataTemplate.zul", homeWindow, data);

原因是我需要将不同的控制器附加到同一个 ZUML。

你快到了。

你只需要在第二个zul中声明composer来自arg map即可。

您通过以下方式在 zul 中执行此操作:

apply="${arg.composer}"

Here is a test fiddle where I did it.