2013-02-09 2 views
3

Я хочу создать динамическую таблицу, принимающую атрибуты книги, когда она предоставила no. книг, которые будут введены на предыдущей странице. Но я ничего не получаю.Как создать таблицу динамически с использованием count и JSTL ForEach

Это мой код:

<table> 
<c:forEach begin="1" end= "${ no }" step="1" varStatus="loopCounter"> 
<tr> 
<td> 
<input type='text' name="isbn" placeholder="ISBN"> 
</td> 
<td> 
<input type="text" name="Title" placeholder="Title"> 
</td> 
<td> 
<input type="text" name="Authors" placeholder="Author"> 
</td> 
<td> 
<input type="text" name="Version" placeholder="Version"> 
</td> 
</tr> 
</c:forEach> 
</table> 

$ {нет} является подсчет количества книг, которые я хочу, чтобы войти. Я здесь новый. Извините, если заголовок не ясен. Пожалуйста помоги.

ответ

4

Вы ничего не получаете, потому что вы не итерируете свой список книг. Кроме того, вы только печатаете множество <input type="text" /> на каждой итерации. Ваш код должен выглядеть следующим образом (при условии, что список книг lstBooks и это уже инициализирована):

<table> 
    <!-- here should go some titles... --> 
    <tr> 
     <th>ISBN</th> 
     <th>Title</th> 
     <th>Authors</th> 
     <th>Version</th> 
    </tr> 
    <c:forEach begin="1" end= "${ no }" step="1" varStatus="loopCounter" 
     value="${lstBooks}" var="book"> 
    <tr> 
     <td> 
      <c:out value="${book.isbn}" /> 
     </td> 
     <td> 
      <c:out value="${book.title}" /> 
     </td> 
     <td> 
      <c:out value="${book.authors}" /> 
     </td> 
     <td> 
      <c:out value="${book.version}" /> 
     </td> 
    </tr> 
    </c:forEach> 
</table> 

После понимания вашей проблемы на основе комментариев, убедитесь, что переменная ${no} доступна на request.getAttribute("no"). Вы можете проверить это, используя скриптлет (но это bad idea) или просто используя <c:out value="${no}" />.

Обратите внимание, что, как я уже сказал, переменная должна быть доступна через request.getAttribute, не путайте ее с помощью request.getParameter.

Кстати, вы можете установить переменную, если вы знаете, какой может быть это значение, как это:

<c:set var="no" value="10" /> 

И тогда вы можете получить доступ к нему с помощью ${no}.

Дополнительная информация: JSTL Core Tag

+0

Я пытаюсь принять ввод. Вот почему у меня есть . на самом деле все примеры присутствуют только на основе итераций. возможно ли работать как обычный цикл? ex: печать одной строки 10 раз –

+0

Вы хотите, чтобы входы со значениями ваших книг были там? –

+0

есть. Я хочу создать эту динамическую форму, которая не принимает книг от пользователя. Он принимает входные данные как нет книг с предыдущей страницы. Извините за меньшую информацию. –

Смежные вопросы