2011-12-07 10 views
1

맞춤 패널 구성 요소 XXPanelGroupHtmlPanelGroup으로 확장되어 태그에 XXComponentHandler이 추가되었습니다. 태그는 복합 구성 요소 내에 배치됩니다. 이 사용자 정의 패널 구성 요소에는 다른 사용자 정의 태그가 있으며 그 중 하나는 YYComponentHandler입니다. 이 처리기에서 부모 구성 요소의 전체 경로 인 내 XXPanelGroup이 필요합니다.맞춤 구성 요소의 상위 요소가 null입니다.

그러나 예기치 않게 부모 구성 요소는 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) 
    ... 

방법이 발생하고 나는 그것을 어떻게 해결할 수 있습니까?

답변

0

를 사용하여 구성 요소 트리에서 구성 요소 삽입하려면 다음

public class SomeHandler extends ComponentHandler { 
    ... 

    @Override 
    public void onComponentCreated(FaceletContext context, UIComponent component, UIComponent parent) { 
     parent.getChildren().add(component); 
    } 
} 
관련 문제