我正在尝试迭代多维字符串数组并打印其值。但我的循环所做的只是多次打印第一行。
String[][] myArray;
myArray 中的值:
Tom Decker Male 20
Julie Hanson Female 25
Toby Jackson Male 30
循环:
<c:forEach var="rowData" items="${myArray}">
<tr>
<c:forEach var="cellData" items="${rowData}" >
<td><c:out value="${cellData}"></c:out></td>
</c:forEach>
</tr>
</c:forEach>
它不是打印所有数据,而是打印第一条记录 3 次,如下所示。
Tom Decker Male 20
Tom Decker Male 20
Tom Decker Male 20
所以看起来循环(内部循环和外部循环)都迭代了正确的次数。但外循环在每次迭代后并不指向下一条记录。
最佳答案
您是否考虑过使用数组/对象列表而不是多维数组?像这样的东西:
class Person {
private String firstName;
private String lastName;
private String sex; // or enum, whatever
private int age;
// public getters/settters go here
}
那么你的 jSTL 看起来会更像这样:
<c:forEach var="rowData" items="${myArray}">
<tr>
<td><c:out value="${rowData.firstName}"></c:out></td>
<td><c:out value="${rowData.lastName}"></c:out></td>
<td><c:out value="${rowData.sex}"></c:out></td>
<td><c:out value="${rowData.age}"></c:out></td>
<tr>
</c:forEach>
如果您愿意的话,这也可以让您在将 CSS 样式应用到列方面更加灵活。
关于java - 使用 jSTL 迭代多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19162552/