JSTL标签循环遍历

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiao_ma_CSDN/article/details/79974799

我有一个后台servlet过来的集合,不是某一个具体对象的,而且还是一个双重循环。

    <% List list = (List) request.getParameter("list");

所以在JSP页面就不能再这样了

for(int i=0;i<list.size();i++)

因为.size()是不能用的。

用JSTL标签

c:forEach标签的items属性支持Java平台所提供的所有标准集合类型。

varStatus用于创建限定了作用域的变量(该变量只在当前标签体内起作用)。不过,由varStatus属性命名的变量并不存储当前索引值或当前元素,而是赋予javax.servlet.jsp.jstl.core.LoopTagStatus类的实例。

current:当前这次迭代的(集合中的)项。
index:当前这次迭代从0开始的迭代索引。
count:当前这次迭代从1开始的迭代计数。
first:用来表明当前这轮迭代是否为第一次迭代,该属性为boolean类型。
last:用来表明当前这轮迭代是否为最后一次迭代,该属性为boolean类型。
begin:begin属性的值。
step:step属性的值

先导入标签库

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

我想要遍历出我想要的值,所以用<c:if>条件 <c:if/> 进行判断

<table>
        <tr>
            <td>学生学号</td>
            <td>学生姓名</td>
            <td>学生班级</td>           
            <td>分数</td>     
        </tr>
        <c:forEach items="${requestScope.OneScoreList}" var="row" varStatus = "f1"> //OneScoreList是后台setAttribute("OneScoreList",list)的值
            <tr>
                <c:forEach items="${row}" var="item" varStatus="f2" begin="0">             
                    <c:if test="${f2.index==0 }">
                        <td><c:out value="${item}" /></td>
                        <c:set var="stuid" value="${item}" />
                    </c:if>
                    <c:if test="${f2.index==1 }">
                        <td><c:out value="${item}" /></td>
                    </c:if>
                    <c:if test="${f2.index==2 }">
                        <td><c:out value="${item}" /></td>
                    </c:if>             
                    <c:if test="${f2.index==7 }">
                        <td><c:out value="${item}" /></td>
                    </c:if>
                </c:forEach>                
            </tr>
        </c:forEach>
    </table>
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页