JSF 2.0:将复合组件属性传递给内部组合组件

时间:2011-01-03 15:21:32

标签: jsf jsf-2 facelets composite-component

我有以下情况:

<cc:interface>
    <cc:attribute name="someValue" />
</cc:interface>

<cc:composite>
    <x:someComponent>
        <span>#{cc.attrs.someValue}</span>
    </x:someComponent>
</cc:composite>

因此,在我的复合组件中,我调用其他复合组件并尝试将给定“master”复合组件的参数传递给内部复合组件。

此操作失败,因为在x:someComponent个标记内,cc隐式对象似乎改为引用此x:someComponent

解决方法是为x:someComponent创建临时字段,以便实现:

<x:someComponent passthroughField="#{cc.attrs.someValue}">
    <span>#{cc.attrs.passthroughField}</span>
</x:someComponent>

然而,这非常难看且不方便。

解决此问题的其他任何方法?

1 个答案:

答案 0 :(得分:1)

解决此问题的一种方法是使用ui:param,如下所示:

<ui:param name="foo" value="cc.attrs.someValue" />
<x:someComponent>
    <span>#{foo}</span>
</x:someComponent>

another question中查看更多内容。