惯例:
我是温浩然:
先说一下两种的区别,上图,改版之前。

后来的效果是:

很明显的,后来的是分组织结构显示的,这里用到的技术,就是C标签
先贴代码:
<c:forEach items="${babyStages}" var="PagebabyStage" varStatus="status">
<c:if test="${status.index%10==0}">
<li data-projectid="${PagebabyStage.stageId}" class="open">
<a href="#" class="dropdown-toggle">
<i class="icon-list"></i>
<span class="menu-text">${status.index+1}---${status.index+10}</span>
</a>
<ul class="submenu" <c:if test="${pbstage.stageId==stageOne.stageId}">style="display: block;"</c:if> >
<c:forEach items="${babyStages}" begin="${status.index}" end="${status.index+9}" var="pbstage" varStatus="cstatus">
<li class="category <c:if test="${pbstage.stageId==stageOne.stageId}">active</c:if> project" data-categoryid="${pbstage.stageId}">
<a href="<spring:url value='/card/showCard/${pbstage.stageId}'/>"> <i class="icon-double-angle-right"></i>${pbstage.name }</a>
</li>
</c:forEach>
</ul>
</li>
</c:if>
</c:forEach>
foreach中嵌套if其中再嵌套foreach。
后台传到前台的是babyStages这个list集合,在前台中,通过c:foreach来进行循环解析,
就会生出第一个图的效果。
如果想生出第二个图的效果,就是上面的代码了。
首先,需要循环产生这个列表,就是1-10,11-20,21-30……
用的是c:if进行判断。其中,用到了c:foreach中的 varStatus属性的index。这个属性,可以百度一下c:foreach。有详细介绍的,我给你推荐个网址:
http://luoke920.iteye.com/blog/258815
status.index是获取当前迭代从0开始的索引
然后回到我这里来。
然后说c:if
我这里用到的c:if是循环条件,是想生出整10 的列表。
所以,c:if中的条件就是
<c:if test="${status.index%10==0}">
迭代从0开始,也就是第一次循环,因为是从0开始的,其实是第一个。是第1-到第10个
当第二次循环,就是从10 ,其实就是11开始。
然后,进入循环之后呢,再让他进行c:foreach循环,来生成下面的每一项
<c:forEach items="${babyStages}" begin="${status.index}" end="${status.index+9}" var="pbstage" varStatus="cstatus">
<li class="category <c:if test="${pbstage.stageId==stageOne.stageId}">active</c:if> project" data-categoryid="${pbstage.stageId}">
<a href="<spring:url value='/card/showCard/${pbstage.stageId}'/>"> <i class="icon-double-angle-right"></i>${pbstage.name }</a>
</li>
</c:forEach>
这个循环,设置了循环的开始项和循环的结束项。
begin="${status.index}" end="${status.index+9}"
当第一次进入for循环中,是从迭代为0,实际为1开始循环,到迭代为9,数据第10个。
第二次进入for循环,迭代10,数据11,到,迭代19,数据20.
这样来生成的。
这里的begin 和 end 是,c:foreach的属性。
刚开始的static.index,则是c:foreach中的 varStatus属性的属性。
不知道你们看懂了没,如果没看懂可以联系我,我QQ:1286238812,备注就写CSDN上看见的就行。我愿意与你共享我的经验。