带有目标的JSF复合标记通配符属性

时间:2013-09-10 14:48:51

标签: jsf-2 composite-component

我想知道是否有办法将所有可能的附加属性定位到给定组件,例如通配符。在以下示例中,我想将所有属性定位到组件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>

1 个答案:

答案 0 :(得分:2)

  

有没有办法简化它?

没有。只需咬紧牙关并将它们全部复制一遍,并使用XML的声明性质。

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