2010-03-03 7 views

답변

10

이것은 상당히 혼란스러운 일입니다. org.w3c.dom.html.HTMLDivElement은 JSF 구성 요소가 아닙니다. 이것은 완전히 다른 목적을 가진 W3 DOM 요소를 나타냅니다 (JAXP, DOM 구문 분석).

javax.faces.component.UIComponent의 서브 클래스가 필요합니다 (위의 Javadoc에서 "직접 알려진 서브 클래스"를 클릭하면 모두 찾을 수 있습니다). HTML <div> 요소를 렌더링하려면 layout 속성이 blockHtmlPanelGroup을 사용하십시오.

<h:panelGroup layout="block" /> 
+0

감사 BalusC를 : "정적"JSF에 다음과 같은 효과적으로 같은 일

HtmlPanelGroup div = new HtmlPanelGroup(); div.setLayout("block"); someParentComponent.getChildren().add(div); 

! 하지만 지금은 또 다른 문제가 있습니다. 동적으로 생성 된 패널 그룹에주는 ID는 모질라에서 소스를 볼 때 동일하지 않습니다. 즉, "abc"+ autoincrementNo로 id를 지정하면 mozilla에서 소스를 볼 때 j_idt9 : abc_1과 같은 것을 얻을 수 있습니다. 어떻게하면 j_idt9를 제거 할 수 있습니다 : 자동으로 접두사가 붙습니다. 사실 내가 생성 된 이드를 제어하는 ​​것이 중요합니다. 그런 바보 같은 질문을하지 않았을 것입니다 : p – TCM

+0

부모 'UINamingContainer' 컴포넌트 ('f : subview','h : form', h : dataTable' 등) 고정 된 ID입니다. BTW : 실제로 자바 스크립트의 이유로 고정 된 ID가 필요하다면이 문제를 해결하는 다른 방법이 있으며 각 요소 아래에서 요소 자체를 'this'로 JS 함수에 전달해야합니다. 예 : 'onclick = "doSomething (this)"'과'function doSomething (element) {var id = element.id; }' – BalusC

+0

나는 당신의 프로필에서 결코 당신이 upvoted도 downvoted 적이 없다는 것을 알 수 있습니다. 점수가 0 인 답변이 이상하게 보입니다. 아래쪽 화살표를 눌러 위쪽 화살표와 아래쪽 화살표를 눌러 upvote 할 수 있습니다. 당신이 어떤 대답을 좋아하면 그것을 upvote. 답에 어떤 가치도 없을 때는 그대로 두십시오. 당신이 어떤 대답을 싫어하면, 그것을 downvote. – BalusC

관련 문제