1

我想知道是否有办法将所有可能的附加属性定位到给定组件,比如通配符。在以下示例中,我想将所有属性定位到组件btn。通常,我希望定位所有 JavaScript 属性(onclick、onsubmit 等),并且我不想复制整个属性列表。有没有办法简化它?

<composite:interface>
    <composite:attribute name="action" targets="btn" required="false" />
    <composite:attribute name="onkeydown" targets="btn" required="false" />
    <composite:attribute name="onkeyup" targets="btn" required="false" />
    <composite:attribute name="onclick" targets="btn" required="false" />
    <!-- Here other attributes with targets="btn" -->
</composite:interface>
<composite:implementation>
    <p:commandButton id="btn" />
    <!-- additional code (not relevant for the question) -->
</composite:implementation>
4

1 回答 1

2

有没有办法简化它?

不,只需咬紧牙关,将它们全部复制粘贴,然后忍受 XML 声明性的冗长。

请注意,使用您提出的方法,Facelet 文件编辑器(例如 Eclipse)将无法<your:composite>在模板客户端的自动完成中提出正确的属性。此外,像 Vdldoc 这样的 Facelet 标记库文档生成器将无法在文档中列出正确的属性。

于 2013-09-10T15:01:34.797 回答