1

我对 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>

我正在努力的是创建和渲染组件的支持 bean。目前我只是想创造任何重复的东西。最终的代码将比这更复杂。

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++;
}

第一次单击按钮时,我可以获取代码以呈现某些内容,但随后没有任何反应。在理想情况下,我会在屏幕上显示 30 个相同的组件。

任何人都可以提供任何建议吗?

先感谢您。

克里斯

4

0 回答 0