2011-01-03 3 views
3

У меня есть следующий случай:JSF 2.0: Передача составного атрибута компонента для внутреннего составного компонента

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

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

Так внутри моего составного компонента Я зову какой-либо другой составной компонент и пытается передать параметр, задаваемый «мастер «составной компонент для внутреннего составного компонента.

Это не удается, потому что внутри x:someComponent теги неявного объекта, похоже, ссылаются на этот x:someComponent.

Обходной путь для создания временного поля для x:someComponent так что это может быть достигнуто, как:

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

Однако это очень некрасиво и неудобным.

Любые другие способы решения этой проблемы?

ответ

1

Один из способов взломать вокруг этого является использование ui:param как в:

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

Смотреть еще в another question.

+0

Я использую это сейчас. Он работает, поэтому я выбираю свой собственный ответ как принято :) –

Смежные вопросы