Композит JSF: insertFacet и композит: renderFacet - PullRequest
3 голосов
/ 10 марта 2011

Я хочу иметь составной компонент с фасетом, который я реализую в своей «реализации» этого составного компонента.Моя проблема заключается в идентификаторах, потому что, когда я определяю только свой составной компонент, а затем помещаю в него свою реализацию, он только отображает его, но компонент находится в другом месте.Вот пример кода:

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>

Что я могу сделать с этим?С композитом: insertFacet ничего не рендерит.Мне также нужен компонент, потому что мне нужно знать его идентификатор клиента.

Ответы [ 2 ]

2 голосов
/ 11 марта 2011

Просто чтобы уточнить:

Вы указалив интерфейсе компонента?

Кроме того, что именно вы имеете в виду в другом месте?

Несколько советов:

  • renderFacet правильно, insertFacet для фасетовопределено внутри самого композита.
  • Попробуйте добавить ""в качестве первой строки содержимого вашего фасета это будет обходной путь для ошибки, связанной с содержимым однострочного фасета.
0 голосов
/ 16 марта 2011

Я получил это работает.Проблема была в том, что мне пришлось выяснить clientId вставленного фасета, и я не знал, что каждый составной компонент делает его собственным NamingContainer.

У меня было что-то вроде этого: "myComposition2.xhtml" ...

"index.faces"

, а полученный clientId был: myC2: myC1:

...