JSF2: add ui: include для привязки дочерних объектов - PullRequest
0 голосов
/ 04 августа 2010

У меня есть UIComponent, который связан с компонентом поддержки. Я хотел бы добавить дочерний элемент к компоненту, который соответствует тегу ui:include, с помощью метода init моего компонента поддержки.

например:

<p:tab>
    <ui:include src="/page.xhtml" />
</p:tab>

Я хочу создать это в своем бэке, как:

<p:tab binding="${bean.tab}" /> 

Итак, в основном я ищу соответствующий класс UIComponent для пользовательского интерфейса: include, чтобы я мог добавить его в качестве дочернего элемента в свойство tab.

Спасибо!

UPDATE:

Я сейчас пытаюсь с faceletContext.includeFacelet:)

Ответы [ 2 ]

1 голос
/ 10 августа 2011

Я прочитал эту ветку 20 раз и сначала не смог найти решение, поэтому вот мой дополнительный комментарий к нему после того, как я нашел правильный путь:

FacesContext facesContext = FacesContext.getCurrentInstance();
FaceletFactory defaultFactory = ApplicationAssociate.getInstance(facesContext.getExternalContext()).getFaceletFactory();
Facelet facelet = defaultFactory.getFacelet(xhtmlUrl);

Затем я создал FaceletHandler для добавления компонента.

Другое решение было:

FaceletContext faceletContext = (FaceletContext) facesContext.getAttributes().get(FaceletContext.FACELET_CONTEXT_KEY);
faceletContext.includeFacelet(parentComponent, xhtmlUrl); 
0 голосов
/ 09 августа 2010

Хорошо, это работает :). Получите faceletContext от FaceStext:

FaceletContext faceletContext = (FaceletContext) FacesContext.getCurrentInstance().getAttributes().get(FaceletContext.FACELET_CONTEXT_KEY);
...