2012-08-15 47 views
3

我想创建一个复合组件,它增加了一些常见的元数据的意见,如:创建对于f复合组件:元数据

<viewController:metadata controller="orderController"/> 

组件:

<composite:interface> 
    <composite:attribute name="controller" /> 
</composite:interface> 

<composite:implementation> 

    <f:metadata> 
    <f:viewParam name="id" value="#{cc.attrs.controller.id}" /> 
    <f:event type="preRenderView" 
     listener="#{cc.attrs.controller.initConversation}" /> 
    </f:metadata> 

</composite:implementation> 

我做同样的事情,添加一个按钮栏到所有的视图,它工作正常,但它似乎不可能与f:元数据。

我是对的还是有我的代码有问题?

谢谢

回答

4

这是不可能的。 <f:metadata>必须进入与视图ID关联的视图。另请参见tag documentation(重点介绍):

声明此视图的元数据方面。这必须是<f:view>的孩子。 此标记必须驻留在给定viewId的顶级XHTML文件中,或者位于模板客户端中,但不在模板中。实施必须确保该方面的直接子女是UIPanel,即使该方面只有一个孩子。该实现必须将UIPanel的ID设置为UIViewRoot.METADATA_FACET_NAME符号常量的值。

+0

好的,谢谢你的回答:) – Joysn 2012-08-16 19:13:41

+0

不客气。 – BalusC 2012-08-16 19:16:45

+0

嗨@BalusC。 我正在寻找类似的东西。是否有另一种方法来实现这种组件? – 2015-04-09 15:26:20