【问题标题】:JSF composite tag wildcard attribute with targets带有目标的 JSF 复合标记通配符属性
【发布时间】:2013-09-10 14:48:50
【问题描述】:

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

【问题讨论】:

    标签: jsf-2 composite-component


    【解决方案1】:

    有没有办法简化?

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

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

    【讨论】:

    • 感谢您的回答。有没有更好的方法来创建可重用的“模板”?
    • 不确定您所说的“更好”是什么意思。您至少可以在这里找到指南:stackoverflow.com/questions/6822000/… 最终,只需使用正确的工具来完成这项工作。
    • 谢谢,这正是我想要的。
    猜你喜欢
    • 2011-12-17
    • 1970-01-01
    • 2018-04-19
    • 2013-12-22
    • 1970-01-01
    • 2017-11-21
    • 2012-10-12
    • 2012-01-16
    • 2012-02-11
    相关资源
    最近更新 更多