Создание динамических элементов управления в JSF управляемого бина?
Я хочу динамически создать объект HtmlDivElement в моем управляемом компоненте jsf и добавить его на панель, но кажется, что HtmlDivElement является интерфейсом. Итак, как я могу это сделать?
1 ответ
Решение
Это довольно серьезная путаница. 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" />