2014-09-01 2 views
1

У меня есть данные SpringMVC (список):Может ли SpringMVC создать таблицу из списка <String>?

"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"

Как написать файл jsp для отображения содержимого списка в следующем формате таблицы?

1 2 3 4 

5 6 7 8 

9 10 

В общем, мои данные список, или массив, и я хочу, чтобы показать их в мульти-строк с постоянным числом элементов в строке, скажем, 4 в ряд.

+2

Вам нужно понять, что это не имеет ничего общего с Spring MVC. Все дело в форматировании таблицы для клиента конечного пользователя. Таким образом, JSP, HTML и css - это технологии, на которые вы должны ориентироваться. –

ответ

2

Вы можете сделать что-то подобное в JSTL. Проверьте свой первый элемент tr с помощью .index для счетчика на основе 0 и для использования последнего элемента .count для счетчика на основе 1.

<table> 
    <c:forEach var="td" items="${list}" varStatus="rowCounter"> 
    <c:if test="${rowCounter.index mod 4 eq 0}"> 
     <tr> 
    </c:if> 
    <td><c:out value="${td}"/></td> 
    <c:if test="${(rowCounter.count) mod 4 eq 0}"> 
     </tr> 
    </c:if> 
</c:forEach> 
</table> 

Примечание он будет производить предупреждение, которое раздражает, но это будет правильно производить HTML.
Вы можете распечатать <tr> с помощью <c:out>, чтобы удалить продукт предупреждения с помощью IDE.

<c:out value="<tr>" escapeXml="false" /> 

Весь код будет.

<table> 
    <c:forEach var="td" items="${list}" varStatus="rowCounter"> 
    <c:if test="${rowCounter.index mod 4 eq 0}"> 
     <c:out value="<tr>" escapeXml="false" /> 
    </c:if> 
    <td><c:out value="${td}"/></td> 
    <c:if test="${(rowCounter.count) mod 4 eq 0}"> 
     <c:out value="</tr>" escapeXml="false" /> 
    </c:if> 
</c:forEach> 
</table> 
+0

будет отсутствовать? – Splash

+0

yep это приведет к предупреждению, что отсутствует, что раздражает, но он правильно выводит html. Если вы хотите, вы можете использовать '', чтобы удалить предупреждение. Я отредактировал свой ответ – user23123412

+0

, решает ли ваша проблема? нажмите кнопку «Проверить». – user23123412

2

Html код

<table border="0"> 
    <tr> 
    <c:forEach var="data" items="${listOfNumbers}" varStatus="loop"> 
    <td>${data}</td> 
      <c:if test="${(loop.count mod 4) == 0}"> 
       </tr> 
       <tr> 
      </c:if> 

    </c:forEach> 
    </tr> 
</table> 

** 4 это число colummn вы хотите, чтобы показать, может быть любой.

** Необходимо точно указать, где и когда следует закрыть tr и td.

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