Создание динамических элементов управления в 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" />
Другие вопросы по тегам