我需要创建一个可重用的 UI 组件,它接受许多参数(例如图像 URL 和一些标签文本),类似于 JSP 标记如何接受参数。“wtkx:include”标签的Pivot 文档说:
该标签允许 WTKX 文件嵌入在外部 WTKX 文件中定义的内容,就好像它是在源文件本身中定义的一样。这对于...定义可重用的内容模板很有用
我希望我可以使用标准 Pivot 组件(例如TextInput)在 WTKX 文件中定义我的组件并传递一个或多个参数;例如,我的名为“row.wtkx”的可重用模板可能包含带有图像和文本字段的行,如下所示(其中 ${xxx} 位是参数):
<TablePane.Row xmlns="org.apache.pivot.wtk">
<ImageView image="@images/${image_url}" />
<TextInput text="${title}" />
</TablePane.Row>
然后我可以在TablePane中重用这个组件,如下所示:
<rows>
<TablePane.Row>
<Label text="Painting"/>
<Label text="Title"/>
</TablePane.Row>
<wtkx:include src="row.wtkx" image_url="mona_lisa.jpg" title="Mona Lisa"/>
<wtkx:include src="row.wtkx" image_url="pearl_earring.jpg" title="Girl with a Pearl Earring"/>
<wtkx:include src="row.wtkx" image_url="melting_clocks.jpg" title="Melting Clocks"/>
</rows>
我自己编写了 ${...} 语法,只是为了展示我正在尝试做的事情。此外,除了使用“wtkx:include”标签本身的属性之外,还有其他方法可以传递参数值,例如传递一个名为“args”的JSON 样式的映射。
像这样传递参数的能力将使包含标记更加强大,例如,在我的例子中,我可以消除表格行声明之间的大量重复。
还是“wtkx:include”不是这样做的正确方法?