Java JSP / JSTL Loop через объекты 2d логический массив - PullRequest
0 голосов
/ 17 марта 2019

Проблема:

Я хочу перебрать массив класса "Seating".

Код "Гостиный":

public class Seating {
private int nRow, nCol;
private boolean[][] seats;

public Seating () {
    nRow = 8;
    nCol = 8;
    seats = new boolean[nRow][nCol];
}

Экземпляр «Seating» создается классом «EventBooking», показанным ниже.

PrintWriter out = response.getWriter();
    seats = new Seating(8,8);

    seats.setSeatStatus(0,1);
    seats.setSeatStatus(1,1);

    request.setAttribute("seats", seats.seats);
    RequestDispatcher req = request.getRequestDispatcher("/index.jsp");
    req.forward(request,response);

И .jsp , который должен проходить через эти значения.

<c:forEach var = "row" items = "${seats}">
    <c:forEach var = "col" items = "${row}">
        <c:out value = "${seats}"/>
    </c:forEach>
</c:forEach>

Я пытаюсь отправить мой "Seating" объект на .jsp . .jsp будет затем перебирать значения 2D-массива Seating. Каждое из значений массива будет напечатано.

Ошибка:

org.apache.jasper.JasperException: An exception occurred processing [/index.jsp] at line [8]

И строка 8.

8:  <c:forEach var = "row" items = "${seats}">

Любая помощь приветствуется.

Редактировать Полный код "Seating"

public class Seating {
private int nRow, nCol;
public boolean[][] seats;

public Seating () {
    nRow = 8;
    nCol = 8;
    seats = new boolean[nRow][nCol];
}

public Seating (int row, int col) {
    nRow = row;
    nCol = col;
    seats = new boolean[row][col];
}

public boolean seatStatus (int row, int col) {
    return seats[row][col];
}

public void setSeatStatus (int row, int col) {
    if (seats[row][col] == false) {
        seats[row][col] = true;
    }
    else if (seats[row][col] == true) {
        seats[row][col] = false;
    }
    //else
        //Error
}

public int getRowLength () {
    return nRow;
}

public int getColLength () {
    return nCol;
}

1 Ответ

0 голосов
/ 17 марта 2019

Пожалуйста, проверьте это и исправьте вывод самого внутреннего цикла - Двумерный массив с тегом c: foreach jstl

Более того, вы можете напечатать 2d массив с помощью индекса, такого как [1] ​​[0], чтобы узнать, присутствует ли в них какое-либо значение.

...