Загрузите данные таблицы на jsp, используя struts2 с фиксированной структурой таблицы - PullRequest
1 голос
/ 13 июня 2010

Я хочу иметь фиксированную структуру таблицы на моей странице jsp (3row, 4column). но я хочу загрузить данные для этой таблицы из базы данных с использованием Struts 2. Я знаю, если моя структура таблицы не была фиксированной, я мог бы просто получить список и итерировать по нему и добавить <tr><td>data</td></tr> в каждой итерации, но как можно Я делаю это в этом случае. Также, если у меня недостаточно данных для заполнения таблицы, я хочу, чтобы эти места были пустыми. Я не нашел хорошего примера, если бы вы могли мне помочь или представить хороший учебник, это было бы очень признательно.

Ответы [ 2 ]

1 голос
/ 15 июня 2010

Вам нужно собрать данные в String[][] или List<List<String>>.

int rows = getMaxRowNumberFromDB();
int cols = getMaxColNumberFromDB();
String[][] values = new String[rows][cols];

// ...

while (resultSet.next()) {
    int row = resultSet.getInt("row");
    int col = resultSet.getInt("col");
    String value = resultSet.getString("value");
    values[row][col] = value; // Note: array index is zero based!
}

Так как я не делаю Struts2, вот пример JSTL, чтобы получить картину того, как вы могли бы сделать это саналогичный тег Struts2:

<table>
    <c:forEach items="${values}" var="row">
        <tr>
            <c:forEach items="${row}" var="value">
                <td>${value}</td>
            </c:forEach>
        </tr>
    </c:forEach>
</table>
0 голосов
/ 15 июня 2010

Это не очень понятно для меня.Обычно (и обычно) списки таблиц имеют фиксированное количество столбцов и переменное количество строк (скажем, как в SQL-выборке).Если это ваш сценарий, с той лишь разницей, что вы хотите наложить фиксированное количество строк, вы можете кодировать это ограничение в свой (скажем) getData() метод действия, чтобы он всегда возвращал список с тремя элементами (позаботьтесь о заполнении отсутствующих строк некоторыми пустыми данными).

Или, возможно, три строки представляют разные типы данных.Тогда у вас есть матрица из 3х4 элементов.Но тогда вы могли бы написать общий Object getMatrixData(int i,int j) метод или даже конкретный метод для каждой ячейки.

...