3

我想要一个包含一个方面的复合组件,我在这个复合组件的“实现”中实现了它。我的问题是 id,因为当我只在我的复合组件中定义然后将我的实现放入其中时,它只呈现它但组件在另一个地方。这是一个示例代码:

myComposition.xhtml

<composite:implementation>
 <composite:renderFacet name="myFacet">
</composite:implementation>

myCompositionImpl.xhtml

<mySomething:myComposition>
 <f:facet name="myFacet">
  this code is rendered but the "component" which I define here is not placed 
  logically in the place where I defined the "renderFacet". 
 </f:facet>
</mySomething:myComposition>

我能做些什么呢?使用 composite:insertFacet 它不会渲染任何东西。我还需要在那里拥有该组件,因为我需要知道它的客户端 ID。

4

2 回答 2

2

只是为了澄清:

您是否在组件的界面中指定了 <cc:facet name="myFacet"> ?

此外,您在另一个地方到底是什么意思?

一些技巧:

  • renderFacet 是正确的, insertFacet 用于在复合材料本身中定义的构面。
  • 尝试将“<!-- -->”添加为构面的第一行内容,这可能是解决有关单行构面内容的错误的方法。
于 2011-03-11T08:58:39.233 回答
0

我让它工作了。问题是我必须弄清楚插入的构面的 clientId,而且我不知道每个复合组件都使其成为自己的 NamingContainer。

我有类似的东西:“myComposition2.xhtml” ...

“index.faces”

结果clientId是:myC2:myC1:

于 2011-03-16T08:40:44.350 回答