Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.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面板网格添加重复组件_Jsf_Components_Containers - Fatal编程技术网

向JSF面板网格添加重复组件

向JSF面板网格添加重复组件,jsf,components,containers,Jsf,Components,Containers,我对Java/JSF开发(以前是大型机遗留)相当陌生,所以我希望有人能让我知道我要问的问题是否可行以及如何做。或者至少给我指出正确的方向 我正在尝试创建一个portlet,在这里我可以反复添加相同的组件,最多添加30次。最终,这些组件背后的数据在每个组件中都会有所不同,但来自同一个数据库。到目前为止,我所做的是创建一个容器组件和一个按钮,该按钮调用一个方法来向容器添加内容。具体如下: <h:body> <h:form> <ice:pane

我对Java/JSF开发(以前是大型机遗留)相当陌生,所以我希望有人能让我知道我要问的问题是否可行以及如何做。或者至少给我指出正确的方向

我正在尝试创建一个portlet,在这里我可以反复添加相同的组件,最多添加30次。最终,这些组件背后的数据在每个组件中都会有所不同,但来自同一个数据库。到目前为止,我所做的是创建一个容器组件和一个按钮,该按钮调用一个方法来向容器添加内容。具体如下:

<h:body>
      <h:form>
        <ice:panelGrid binding="#{simpleBean.containerComponent}"/>
        <br/>
        <ice:commandButton  value="add new section" action="#{simpleBean.addComponent}" />
       </h:form>
</h:body>
我可以让代码在第一次单击按钮时呈现一些内容,但随后什么也没有发生。在理想情况下,我会在屏幕上显示30个相同的组件

有人能提供一些建议吗

先谢谢你


克里斯

你的菜豆的范围是什么?你看起来像什么?我想是的。我来看看是否有用。我基本上想做的是一次又一次地添加相同的组件(具有不同的id)。我收集了我需要更改id的信息,因为当我没有得到一个组件时,它已经存在错误。
private HtmlPanelGrid containerComponent;
private int i = 1;

public void addComponent() {

UIColumn uiColumn = new UIColumn();
uiColumn.setId("UIColumn_"+i);

HtmlOutputText htmlOutputText = new HtmlOutputText();
htmlOutputText.setId("HtmlOutputText_"+i);
htmlOutputText.setValue("HtmlOutputText_1_Value");

HtmlInputText htmlInputText = new HtmlInputText();
htmlInputText.setId("HtmlInputText_"+i);
htmlInputText.setValue("HtmlInputText_1_Value");

uiColumn.getChildren().add(htmlOutputText);
uiColumn.getChildren().add(htmlInputText);

if (containerComponent == null) {
    containerComponent = new HtmlPanelGrid();
}

containerComponent.getChildren().add(uiColumn);

i++;
}