如何使用JSTL <c:foreach>创建<div>网格?</c:foreach> </div>

时间:2011-10-06 05:26:36

标签: jsp jstl

我正在尝试使用JSTL <c:forEach>创建网格。

<c:forEach var="user" items="${userList}" step="1" begin="0">
    <div id="col1">
        <a href="#">${user.userName}</a>
    </div>
    <div id="col2">
        <a href="#">${user.userName}</a>
    </div>
    <div id="col3">
        <a href="#">${user.userName}</a>
    </div>
</c:forEach>

输出结果为:

user1   user1   user1
user2   user2   user2
user3   user3   user3
and so on...

但我希望它显示如下:

user1   user2   user3
user4   user5   user6
user7   user8   user9
and so on...

我的CSS是:

#col1 {
    position: absolute;
    left: 5px;
    padding: 0px;  
}

#col2 {
    position: absolute;
    margin-left: 100px;
    padding: 0px;
}

#col3 {
    margin-left: 200px;
    padding: 0px;
}

如何在不使用桌子的情况下实现这一目标?

2 个答案:

答案 0 :(得分:4)

您需要申报状态变量,请尝试:

<c:forEach var="user" varStatus="status" items="${userList}" step="1" begin="0">
  <div id="col${status.index % 3 + 1}">
    <a href="#">${user.userName}</a>
  </div>
</c:forEach>

答案 1 :(得分:1)

试试这个,

<c:set var="count" value="1"/>
<c:forEach var="user" items="${userList}" step="1" begin="0">
 <c:if test="${count==4}">
   <c:set var="count" value="1"/>
 </c:if>
 <div id="col${count}">
    <a href="#">${user.userName}</a>
 </div>
 <c:set var="count" value="${count+1}"/>
</c:forEach>