jstl ошибка итерации - PullRequest
       1

jstl ошибка итерации

0 голосов
/ 28 января 2012

Я хочу привязать значение к выпадающему списку, значение извлекается из базы данных.

Я хочу, чтобы результат был таким, как показано ниже:

    <option value=Sick>Sick</option>                      
    <option value=Funeral>Funeral</option>                  
    <option value=Trip>Trip</option>                    
    <option value=Others>Others</option>             

Но теперь я получаю результат, как показано ниже:

  <option value=Others>Others</option>
  <option value=Others>Others</option>
  <option value=Others>Others</option>
  <option value=Others>Others</option>

Вот мой код Java:

while(rs.next()){
    le.setReason(rs.getString("lr_name"));
    arrLeave.add(le);
}
request.setAttribute("arrLeave", arrLeave);

Вот мой JSP:

<c:forEach items="${arrLeave}" var="arrLeave">
<option value=${arrLeave.reason}>${arrLeave.reason}</option>
</c:forEach>

В чем проблема? Спасибо !

Ответы [ 2 ]

0 голосов
/ 28 января 2012

Вы обновляете тот же объект и добавляете его в список.

le.setReason(rs.getString("lr_name")) -> same object updated over all iteration

Инициализируйте файл с помощью оператора new, прежде чем указывать причину.

<BeanName> le = new <BeanName>();
le.setReason(rs.getString("lr_name"));
0 голосов
/ 28 января 2012

У вас есть только один экземпляр класса le, поэтому вы получите n копий последней причины.

Создайте новый экземпляр для каждой строки в наборе результатов:

while (rs.next()) {
    arrLeave.add(new Leave(rs.getString("lr_name")));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...