运用c:foreach循环显示

惯例:

我是温浩然:

先说一下两种的区别,上图,改版之前。

运用c:foreach循环显示

后来的效果是:

运用c:foreach循环显示


很明显的,后来的是分组织结构显示的,这里用到的技术,就是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上看见的就行。我愿意与你共享我的经验。

上一篇:Spark SQL:将嵌套的json类型DataFrame压平


下一篇:linux 安装 jdk tomcat mysql