您好请查看以下代码供您参考。
<%
System.out.println("Here???????? 111111 :::::::::::::: "+request.getAttribute("COLUMNSIZE"));
if(request.getAttribute("COLUMNSIZE") != null){
int columnSize = 0;
columnSize = Integer.parseInt(request.getAttribute("COLUMNSIZE").toString());
System.out.println("Here 111111 :::::::::::::: "+columnSize);
for(int loop=0 ; loop < columnSize ; loop++){
%>
<h:column>
<f:facet name="header" >
<h:outputText value="Field <%=loop%>">
</h:outputText>
</f:facet>
<h:outputText value="Password" />
</h:column>
<%
}
}
%>
</h:dataTable>
现在我想要的是我想使用循环变量动态地为列分配id ...但是不允许使用scriplets而且我找不到任何其他方法。
所以,如果你们有任何想法,请快速回复我。
答案 0 :(得分:0)
如果我正确地阅读了您的问题,您想要动态更改dataTable的列数(我可能错了)。
如果你在冰面或富有脸上,为什么不使用ice:columns
或rich:columns
?
答案 1 :(得分:0)
Scriplets不应与JSF表达式混淆。下面的代码可以用来实现你已经尝试过的东西,将逻辑放在支持bean和amp;看起来更具可读性。
<ui:repeat value="#{backingBean.headerNames}" var="header">
<li>
<h:outputText value="#{header.field}" />
</li>
</ui:repeat>
有关详细信息,请浏览JSF EL Documentation
答案 2 :(得分:0)
可能是它的工作。
HtmlOutputText test = new HtmlOutputText();
test.setValue("test");
HtmlDataTable dataTable = new HtmlDataTable();
dataTable.getChildren().add(test);