在jsf托管bean中创建动态控件?
我想在我的jsf托管bean中动态创建HtmlDevice对象,并将其添加到面板中,但HtmlDevice似乎是一个接口。那么,我该怎么做呢?这是一个相当大的困惑。不是JSF组件。这表示一个W3DOM元素,它具有完全不同的用途(,DOM解析) 您需要的子类(只需单击前面链接的Javadoc中的“直接已知子类”即可找到它们)。要呈现HTML在jsf托管bean中创建动态控件?,jsf,Jsf,我想在我的jsf托管bean中动态创建HtmlDevice对象,并将其添加到面板中,但HtmlDevice似乎是一个接口。那么,我该怎么做呢?这是一个相当大的困惑。不是JSF组件。这表示一个W3DOM元素,它具有完全不同的用途(,DOM解析) 您需要的子类(只需单击前面链接的Javadoc中的“直接已知子类”即可找到它们)。要呈现HTML元素,只需使用其布局属性设置为块 HtmlPanelGroup div = new HtmlPanelGroup(); div.setLayout("block
元素,只需使用其布局
属性设置为块
HtmlPanelGroup div = new HtmlPanelGroup();
div.setLayout("block");
someParentComponent.getChildren().add(div);
这与“静态”JSF中的以下操作基本相同:
谢谢你,巴卢斯克!但现在我有另一个问题。当我在mozilla中查看源代码时,我给动态生成的panelgroup的id看起来不一样,也就是说,如果我给id设置为“abc”+自动递增否,那么当我在mozilla中查看源代码时,我会得到类似j_idt9:abc_1的东西。我如何摆脱这个j_idt9:它会自动添加前缀。实际上,控制生成的id对我来说很重要,否则我就不会问这样愚蠢的问题:p您需要给每个父级UINamingContainer
组件(f:subview
,h:form
,h:dataTable
,等等)一个固定的id。顺便说一句:如果你确实因为JavaScript的原因需要固定ID,那么还有其他(更好的)方法来解决这个问题,在每个方法下,只需将元素本身作为this
传递给JS函数即可。例如,onclick=“doSomething(this)”
和函数doSomething(element){var id=element.id;}
我在您的个人资料中看到,您从未投过赞成票或反对票。分数为0的答案看起来确实很奇怪。您可以按向上箭头进行向上投票,按向下箭头进行向下投票。如果你喜欢任何答案,就投票吧。当答案没有任何价值时,就让它这样吧。如果您不喜欢任何答案,请投否决票。好的,谢谢Balcus,但是现在,如果我给我的表格一个id作为frm,那么现在id变为frm:abc_1?这实际上可以完成我的工作,因为前缀中没有数字,但仍然可以提供信息,你能告诉我如何完全摆脱它吗?我知道在javascript中传递这个概念,但实际上我使用的是jQueryPortlet,它没有什么不方便的要求,它需要id作为名称和编号。谢谢你的通知。一、 其实我不知道!现在我来处理这件事。嘿,对不起!我自己买的。我忘了表单有属性prependid。我把它设为false,现在一切都好了:)谢谢巴卢斯
<h:panelGroup layout="block" />