我想知道是否有办法将所有可能的附加属性定位到给定组件,例如通配符。在以下示例中,我想将所有属性定位到组件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>
答案 0 :(得分:2)
有没有办法简化它?
没有。只需咬紧牙关并将它们全部复制一遍,并使用XML的声明性质。
请注意,使用您提出的方法,Facelet文件编辑器(例如Eclipse)将无法在模板客户端中<your:composite>
的自动完成时提出正确的属性。此外,像Vdldoc这样的Facelet标记库文档生成器将无法在文档中列出正确的属性。