我对Java / JSF开发(以前的Mainframe遗产)相当陌生,所以我希望有人能够让我知道我要问的问题是什么,以及如何做到这一点。或者至少指出我正确的方向。
我正在尝试创建一个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个相同的组件。
有人可以提供任何建议吗?
提前谢谢你。
克里斯