Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在jsf托管bean中创建动态控件?_Jsf - Fatal编程技术网

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

在jsf托管bean中创建动态控件?,jsf,Jsf,我想在我的jsf托管bean中动态创建HtmlDevice对象,并将其添加到面板中,但HtmlDevice似乎是一个接口。那么,我该怎么做呢?这是一个相当大的困惑。不是JSF组件。这表示一个W3DOM元素,它具有完全不同的用途(,DOM解析) 您需要的子类(只需单击前面链接的Javadoc中的“直接已知子类”即可找到它们)。要呈现HTML元素,只需使用其布局属性设置为块 HtmlPanelGroup div = new HtmlPanelGroup(); div.setLayout("block

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

这是一个相当大的困惑。不是JSF组件。这表示一个W3DOM元素,它具有完全不同的用途(,DOM解析)

您需要的子类(只需单击前面链接的Javadoc中的“直接已知子类”即可找到它们)。要呈现HTML
元素,只需使用其
布局
属性设置为

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" />