zoukankan      html  css  js  c++  java
  • JSTL标签 使用总结,foreach

    最近开发一个网站,经常使用JSTL,这种语法与以前的不同,开始用着非常吃力,今天总结一下,供大家参考。

    一、前言

    JSTL全名为JavaServer Pages Standard Tag Library,JSTL是由JCP(Java Community Process)所制定的标准规范,它主要提供给Java Web开发人员一个标准通用的标签函数库。

    二、导入使用

    2.1 在pom.xml里面添加jar包

    <!-- JSTL -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.1.2</version>
    </dependency>
    <dependency>
        <groupId>taglibs</groupId>
        <artifactId>standard</artifactId>
        <version>1.1.2</version>
    </dependency>

    2.2 在jsp文件头添加说明

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

    2.3 添加文件夹

    在相目WEB-INF	ld文件夹中放入常用的tld文件:c.tld,fmt.tld

    三、核心标签库 

    JSTL 核心标签库(C标签)标签共有13个,功能上分为4类:

    1. 表达式控制标签:out、set、remove、catch
    2. 流程控制标签:if、choose、when、otherwise
    3. 循环标签:forEach、forTokens
    4. URL操作标签:import、url、redirect

    3.1 <c:forEach> 标签

      为循环控制,它可以将集合(Collection)中的成员循序浏览一遍。

    3.1.1 <c:forEach> 标签的语法:

    3.1.1.1 基本语法

    迭代一集合对象之所有成员

    <c:forEach [var="varName"] items="collection" [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]> 
    本体内容 
    </c:forEach> 

    迭代指定的次数

    <c:forEach [var="varName"] [varStatus="varStatusName"] begin="begin" end="end" [step="step"]> 
    本体内容 
    </c:forEach> 

    3.1.1.2 事例:

    普通事例:

    <c:forEach items="${compareShowDto.tgtColumnMetaDataList}" var="item">
        <th>${item.name}</th>
    </c:forEach>

    嵌套foreach事例:

    <c:forEach items="${compareShowDto.compareColumnMetaData}" var="rows">
        <tr <c:if test="${rows.theSame=='false'}"> style="color:red" </c:if>>
            <td style="background-color: #f5f5f5">${rows.theSame}</td>
            <c:forEach items="${rows.srcRowData.columnObjects}" var="item">
                <td><c:out value="${item}"/></td>
            </c:forEach>
            <td style="background-color: #ff7800;"></td>
            <c:forEach items="${rows.tgtRowData.columnObjects}" var="item">
                <td><c:out value="${item}"/></td>
            </c:forEach>
        </tr>
    </c:forEach>

    3.1.1.3 <c:forEach> 标签的 属性说明 :

    3.1.1.4 <c:forEach> 标签的 属性 : varStatus属性: 它的提供另外四个属性:index,count,fist和last,它们个自的意义如下:

    属性                   类型                                  意义  
    index                  number                    现在指到成员的索引  
    count                  number                    总共指到成员的总和  
    first                  boolean                   现在指到成员是否为第一个  
    last                   boolean                   现在指到成员是否为最后一个

    <c:forEach> 遍历 List列表

    对于一个基本类型的数组,当前元素将作为相应包装类(Integer、Float等等)的一个实例提供。

    <c:forEach items="${domainList }" var="item">  
    <tr>  
      <td align="center" valign="middle">${item["domain"]==null?"&nbsp;":item["domain"]}</td>  
      <td align="center" valign="middle"><fmt:formatDate value="${item['bind_date']}" pattern="yyyy-MM-dd HH:mm:ss"/></td>  
      <td align="center" valign="middle">  
        <c:if test="${item['domain']!=null}">  
        <a href="javascript:;" id="${item['domain']}" class="del">&nbsp;</a>  
        </c:if>  
        </td>  
    </tr>    
    </c:forEach>  

     <c:forEach> 遍历Map:

    对于一个java.util.Map,当前元素则作为一个java.util.Map.Entry提供。

    <c:if test="${!empty permissionMap}">    
    <c:forEach items="${permissionMap}" var="item">  
    <tr>  
        <td>${item.value.id}</td>  
        <td>${item.value.urlOnClass}</td>  
        <td>${item.value.urlOnMethod}</td>  
    </tr>  
    </c:forEach>  
    </c:if>    
  • 相关阅读:
    PostgreSQL的MVCC(4)--Snapshots
    PostgreSQL的MVCC(3)--Row Versions
    PostgreSQL的MVCC(2)--Forks, files, pages
    asynchelper在一个同步方法(非async)方法中等待async方法
    restTemplate工具类【我】
    String字符串类型转数字进行计算及其他校验
    高并发系统设计(七):【Mysql数据库的优化】主从读写分离、分库分表
    高并发系统设计(六):如何减少频繁创建数据库连接的性能损耗?
    高并发系统设计(五):【系统设计目标③】如何让系统易于扩展?
    高并发系统设计(四):【系统设计目标②】系统怎样做到高可用?
  • 原文地址:https://www.cnblogs.com/liqiu/p/4375415.html
Copyright © 2011-2022 走看看