zoukankan      html  css  js  c++  java
  • JSTL之迭代标签库

                                              JSTL之迭代标签库

        JSTL的全称是 Java Server Pages Standard Tag Library,翻译过来就是JSP标准标签库,它包含了在开发JSP页面时经常用到的一组标准标签。这些标签提供了一种不用嵌入Java代码就可以开发复杂的JSP页面的方法。

        在JSTL中一共有5大类标签库,其中有一个重要的核心标签库,而核心标签库根据功能不同又分为通用标签库、条件标签库、迭代标签库,今天我们要说的就是其中的迭代标签库。

        在JSP的开发中,我们经常需要对集合对象进行迭代操作。例如,列表显示查询结果等,以往通常使用java代码实现集合对象的遍历,如List,Iterator等。现在我们所说的JSTL的迭代标签可以在很大程度上简化迭代操作。

        <c:forEach>标签有两种语法格式,一种用于遍历集合对象的成员,另一种用于使语句循环执行指定的次数,下面我们来一一列举。

        1.遍历集合对象的成员

    <c:forEach var="varName" items="collectionName" varStatus="varStatuwsName" 
              begin="beginIndex" end="endIndex" step="step">显示内容</c:forEach>

        上面就是一个forEach标签的基本语法格式,其中var属性是代表当前遍历的成员,items是指被迭代的集合对象,varStatus属性用于存放var引用的成员的相关信息,如索引等,begin表示开始的位置,默认为0,end表示结束为止,step表示循环的步长,默认为1。好了,现在我们已经知道了他的基本语法和各属性的作用,那么把他带入到程序中是怎样的呢?下面就用一个简单的Demo来个大家一个直观的呈现:

    <%
        List<String> list = new ArrayList<String>();
        list.add("小明");
        list.add("小红");
        list.add("小刚");
        request.setAttribute("list",list);
        %>
        <c:forEach var="varName" items="${list}" varStatus="varStatusName">
           ${varName}
        </c:forEach>

        这样就实现了一个简单的迭代效果,一般JSTL标签要和EL表达式联用,这样就可以简便的获取和输出数据。大家也看到了,这样直接遍历循环对象很简单,那么我们继续看他的下一种语法格式,也就是指定语句的执行次数。

        2.指定语句的执行次数:

    <c:forEach var="varName"  varStatus="varStatuwsName" 
              begin="beginIndex" end="endIndex" step="step">显示内容</c:forEach>

        是不是看起来很熟悉呢,他的语法和上面没有太大不同,区别就是格式2不是对一个集合对象遍历,而是根据制定的begin属性,end属性以及step属性执行主体内容固定的次数。这种方法在实际开发中非常广泛,在很多开发中都要显示列表,报表,下面我们就用一个人员列表隔行变色的核心代码来演示他的效果:

     <table style="border:1px solid blue;  400px;">
            <tr style="font-weight: bold; ">
            <td>姓名</td><td>职位</td><td>年龄</td>
            </tr>
            <!--在servlet页面已经加进去一个集合-->
            <c:forEach var="varName" items="${list}" varStatus="status">
               <tr <c:if test="${status.index%2==0}">style="background-color: pink"</c:if></tr>
                  <td>${varName.name}</td><td>${varName.job}</td><td>${varName.age}</td>
               </tr>
            </c:forEach>
         </table>

            这样就有了一个好看的隔行变色效果:

     

         是不是很好用呢?如果要用jquery或是HTML代码实现这种和数据库连接的样式会非常麻烦,使用JSTL标签让代码变得简便,并且其中的条件标签可以让代码多出更多的变化。

  • 相关阅读:
    设计模式之 原型模式
    设计模式之 策略模式
    设计模式之 单例模式
    使用IntelliJ IDEA 15和Maven创建Java Web项目(转)
    Java 内存分配全面浅析(转)
    java常量池概念 (转)
    java基本类型和包装类的区别(转)
    JAVA数据类型(转)
    SQL SERVER 2008 服务器登录名、角色、数据库用户、角色、架构的关系(转)
    视图的好处(转)
  • 原文地址:https://www.cnblogs.com/fanfu1/p/4522214.html
Copyright © 2011-2022 走看看