2010-03-03 5 views

ответ

10

Это довольно серьезное замешательство. org.w3c.dom.html.HTMLDivElement не является компонентом JSF. Это представляет собой элемент W3 DOM, который имеет совершенно другую цель (JAXP, разбор DOM).

Вам нужен подкласс javax.faces.component.UIComponent (просто нажмите свой путь через «Прямые известные подклассы» в предыдущем Javadoc, чтобы найти их все). Чтобы отобразить элемент HTML <div>, используйте только HtmlPanelGroup, для атрибута layout установлено значение block.

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

, который делает фактически то же самое, как следующее в "статическом" JSF:

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

благодаря BalusC! но теперь у меня другая проблема. Идентификатор, который я даю динамически сгенерированной группе панелей, не выглядит таким же, когда я рассматриваю исходный код в mozilla. Если я даю id как «abc» + autoincrementNo, тогда, когда я просматриваю источник в mozilla, я получаю что-то вроде j_idt9: abc_1. Как мне избавиться от этого j_idt9: он автоматически получает префикс. На самом деле для меня важно получить контроль над сгенерированным идентификатором. Я бы не задал такой глупый вопрос: p – TCM

+0

Вам нужно предоставить каждому из родительских компонентов 'UINamingContainer' (' f: subview', 'h: form',' h: dataTable' и т. д.) и фиксированный идентификатор. Кстати: если вы действительно нуждаетесь в фиксированных идентификаторах по причинам JavaScript, тогда есть и другие (лучшие) способы решения этого вопроса, при каждом просто передавая сам элемент JS-функции как «this». Например. 'onclick =" doSomething (this) "и' function doSomething (element) {var id = element.id; } ' – BalusC

+0

Кстати, я вижу в вашем профиле, что вы никогда не поддерживали или ниспровергали. Ответ с 0 баллов выглядит странно. Вы можете подняться, нажав стрелку вверх и вниз, нажав стрелку вниз. Когда вам нравится какой-либо ответ, поддержите его. Когда ответ не имеет значения, просто оставьте его так. Когда вам не нравится какой-либо ответ, уменьшите его. – BalusC

Смежные вопросы