【问题标题】:Composite attribute within f:facets tag of another composite component另一个复合组件的 f:facets 标记内的复合属性
【发布时间】:2013-09-01 22:05:55
【问题描述】:

假设我确实有一个复合属性elementId

 <composite:implementation>
    ...
    <x:popupTooltip>
       ...
       <f:facet name="tooltip">
          <rich:message for="#{cc.attrs.elementId}" />
          ...

#{cc.attrs.elementId}&lt;f:facet .../&gt; 标记中始终为空。但是在&lt;f:facet ... /&gt;的外面加上参数,就可以正确渲染了。

如何在&lt;f:facet .../&gt; 标签中使用复合属性或&lt;ui:param ... /&gt; 值(我也尝试过)?

【问题讨论】:

    标签: jsf jsf-2 richfaces composite-component


    【解决方案1】:

    EL 总是在当前组件的上下文中进行评估。您的&lt;rich:message&gt; 中的#{cc} 实际上指的是&lt;x:popupTooltip&gt;。最好的办法是将该属性传递给 &lt;x:popupTooltip&gt;,以便它也知道该属性。

    <x:popupTooltip elementId="#{cc.attrs.elementId}">
    

    【讨论】:

    • 谢谢。正是我作为解决方法所做的。 :-) 但这会导致代码重复,因为 elementId 仅用于非常特定的代码。
    • 不客气。也就是说,我有点担心你只是为了特定目的而使用复合材料太过分了。另见stackoverflow.com/questions/6822000/…
    猜你喜欢
    • 2011-12-17
    • 2020-05-22
    • 2011-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-09
    • 1970-01-01
    相关资源
    最近更新 更多