Родитель пользовательского компонента является нулевым - PullRequest
1 голос
/ 07 декабря 2011

Я создал пользовательский компонент панели XXPanelGroup, который расширяет HtmlPanelGroup, просто чтобы добавить XXComponentHandler к тегу. Тег размещен внутри составного компонента. Внутри этого компонента пользовательской панели у меня есть еще один пользовательский тег с собственным YYComponentHandler. В этом обработчике мне нужен полный путь родительского компонента, который является моим XXPanelGroup.

Но неожиданно родительским компонентом является null. Когда я попытался вызвать setParent() явно, я получил следующее исключение:

Parent was not null, but this component not related
    at javax.faces.component.UIComponentBase.eraseParent(UIComponentBase.java:517)
    at javax.faces.component.UIComponentBase.access$400(UIComponentBase.java:99)
    at javax.faces.component.UIComponentBase$ChildrenList.add(UIComponentBase.java:2629)
    at javax.faces.component.UIComponentBaseChildrenList.add(UIComponentBase.java:2603)
    at com.sun.faces.facelets.tag.jsf.ComponentSupport.addComponent(ComponentSupport.java:559)
    ...

Как это вызвано и как я могу решить?

1 Ответ

0 голосов
/ 20 августа 2012

Используйте следующую команду для вставки компонента в дерево компонентов:

public class SomeHandler extends ComponentHandler {
    ...

    @Override
    public void onComponentCreated(FaceletContext context, UIComponent component, UIComponent parent) {
        parent.getChildren().add(component);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...