在jsf托管bean中创建动态控件?

TCM*_*TCM 2 jsf

我想在我的jsf托管bean中动态创建HtmlDivElement的对象并将其添加到面板,但似乎HtmlDivElement是接口.那么,我该怎么办呢?

Bal*_*usC 10

这是一个相当大的混乱.该org.w3c.dom.html.HTMLDivElement不是JSF组件.这表示W3 DOM元素具有完全不同的目的(JAXP,DOM解析).

你需要一个子类javax.faces.component.UIComponent(只需点击上面链接的Javadoc中的"Direct Known Subclasses"来查找它们).要呈现HTML <div>元素,只需使用HtmlPanelGrouplayout属性设置为block.

HtmlPanelGroup div = new HtmlPanelGroup();
div.setLayout("block");
someParentComponent.getChildren().add(div);
Run Code Online (Sandbox Code Playgroud)

这与"静态"JSF中的以下内容有效:

<h:panelGroup layout="block" />
Run Code Online (Sandbox Code Playgroud)