我对 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 个相同的组件。
任何人都可以提供任何建议吗?
先感谢您。
克里斯