java - 使用 jSTL 迭代多维数组

标签 java arrays jsp multidimensional-array jstl

我正在尝试迭代多维字符串数组并打印其值。但我的循环所做的只是多次打印第一行。

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/

相关文章:

java - 如何在没有继承的情况下避免 DTO 重复?

java - 当不知道数组字段的长度时如何构造它?

java - JSP模板实现(Composite View Pattern)

css - 在 JSP 中对齐表

java - jsp页面刷新后删除成功消息?

java - 使用 Scanner 将多个输入分配给多个变量

java - 在 Swing 中调用后台线程

java - 如何使用Oracle和JDBC获取SQL语句中错误的行号?

javascript - 如何在js中的div中设置数组的特定部分的样式

java - 选中项目时,selectManyCheckbox 元素不会复制到数组