以编程方式在创建组件时添加composer

时间:2015-03-20 10:24:52

标签: zk

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

此作品

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。

1 个答案:

答案 0 :(得分:2)

你几乎就在那里。

你只需要在第二个zul中声明作曲家来自arg地图。

你在zul中这样做:

apply="${arg.composer}"

Here is a test fiddle where I did it.