【问题标题】:How to pass the node value as the attribute in Composite Component in JSF 2.0如何在 JSF 2.0 的复合组件中将节点值作为属性传递
【发布时间】:2011-02-23 11:58:30
【问题描述】:

我正在开发一个 JSF 2.0 复合组件。我正在尝试创建一个盒子组件,我需要的 HTML 将被设置为属性。

类似的东西..

<composite:interface>
    <composite:attribute name="value" />
</composite:interface>
<composite:implementation>
    <table cellpadding="0" cellspacing="0" border="1" width="100%">
        <tr>
            <td></td>
            <td>#{cc.attrs.value}</td>
            <td></td>
        </tr>
    </table>
</composite:implementation>

当我想使用这个组件并将所需的 HTML 传递给属性“value”时,如下所示:

<someDir:boxComp>Hello</someDir:boxComp>

“Hello”不作为属性值。 如何将节点值作为属性值?

【问题讨论】:

    标签: jsf jsf-2 composite-component


    【解决方案1】:

    您没有将它作为标记属性传递。您只是在标签正文中将其作为子项传递。在这种情况下,您需要使用 &lt;composite:insertChildren /&gt; 来插入它。所以,而不是

    <td>#{cc.attrs.value}</td>
    

    你应该这样做

    <td><composite:insertChildren /></td>
    

    或者如果你实际上想要使用#{cc.attrs.value},那么你应该从一开始就将它定义为一个real标签属性而不是作为标签正文:

    <someDir:boxComp value="Hello" />
    

    【讨论】:

      猜你喜欢
      • 2011-06-02
      • 1970-01-01
      • 2016-01-22
      • 2011-07-24
      • 1970-01-01
      • 2011-02-24
      • 2017-09-04
      • 2012-04-11
      • 2020-08-28
      相关资源
      最近更新 更多