Завершение строки таблицы в jstl - PullRequest
1 голос
/ 12 марта 2012

Я пытаюсь использовать таблицу для отображения некоторых изображений, мне разрешено 3 изображения в строке, но я не уверен, как завершить строку таблицы, если у меня есть строка, содержащая менее 3 изображений.Смотрите фрагмент кода ниже, чтобы узнать, что я пытался.

Используя ul Мне не пришлось бы об этом беспокоиться, но я получил указание использовать стол.Как я могу убедиться, что последний ряд правильно завершен?Я новичок в jstl.

Спасибо,

    <% int endTRFlag = 0; %>
    <table width="100%">
      <tr>
      <core:forEach var="imageURL" items="${actionBean.imageURLs}" varStatus="rowCounter">
         <td align="center" valign="middle">
          <div class="item">
            <a href="#"><img src="${imageURL}" alt="Photo 1" class="img" /></a> 
          </div>
         </td>
         <% endTRFlag = 1; %>
      <core:if test="${ (rowCounter.count % 3 == 0) }">
      </tr>
      <tr>
      <% endTRFlag = 0; %>
      </core:if>
      <core:if test="${ (rowCounter.count % 3 != 0) && (endTRFlag == 0)}">
      </tr>
      </core:if>

      </core:forEach>

Ответы [ 2 ]

2 голосов
/ 12 марта 2012

В приведенном ниже коде я использую .index вместо .count, потому что он основан на 0, и поэтому будет лучше работать для модуля (0/3, 3/3 и т. Д.). .last равно true, если текущий элемент является последним элементом в списке. Это решение вызывает ошибки проверки в Eclipse (по крайней мере, Ganymede), что раздражает.

<c:forEach var="imageURL" items="${actionBean.imageURLs}" varStatus="rowCounter">
    <c:if test="${rowCounter.index mod 3 eq 0}">
        <tr>
    </c:if>
    <td>stuff</td>
    <c:if test="${(rowCounter.index+1) mod 3 eq 0 or rowCounter.last}">
        </tr>
    </c:if>
</c:forEach>
0 голосов
/ 12 марта 2012

Просто поставьте </tr> после цикла.

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<c:set var="imageCnt" value="${fn:length(actionBean.imageURLs)}"/>
<table width="100%">  
  <tr>
    <c:forEach var="imageURL" items="${actionBean.imageURLs}"
      varStatus="rowCounter">
      <td align="center" valign="middle">
        <span class="item"> 
          <a href="#"><img src="${imageURL}" alt="Photo 1" class="img" /></a>
        </span>
      </td>
    </c:forEach>
    <c:forEach begin="${imageCnt}" end="2">
      <td/>
    </c:forEach>
  </tr>  
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...