JSTL标签库

一、JSTL标签库介绍  

  JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的。使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码。

二、JSTL标签库的分类

  • 核心标签(用得最多)
  • 国际化标签(I18N格式化标签)
  • 数据库标签(SQL标签,很少使用)
  • XML标签(几乎不用)
  • JSTL函数(EL函数)

三、核心标签库使用说明

  JSTL的核心标签库标签共13个,使用这些标签能够完成JSP页面的基本功能,减少编码工作。

  从功能上可以分为4类:表达式控制标签、流程控制标签、循环标签、URL操作标签。
    (1)表达式控制标签out标签、set标签、remove标签、catch标签。
    (2)流程控制标签if标签、choose标签、when标签、otherwise标签
    (3)循环标签forEach标签、forTokens标签
    (4)URL操作标签import标签、url标签、redirect标签、param标签

  在JSP页面引入核心标签库的代码为:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

3.1、流程控制标签——if标签

<c:if test="${!empty list }">
//业务逻辑
</c:if>

3.1、流程控制标签——choose标签、when标签、otherwise标签

<c:choose>
   <c:when test="条件n">
      //业务逻辑n
         </c:when>
         <c:otherwise>
      //业务逻辑
   </c:otherwise>
 </c:choose>

3.3、循环标签——forEach标签     该标签根据循环条件遍历集合(Collection)中的元素。

<c:forEach var="si" items="${list}" varStatus="st"> // var和items是必须值
<td>${st.index+1 }</td>
<td>${si.name }</td>
</c:forEach>

【参数解析】:
  (1)var指定用来存放遍历到的成员。
  (2)items指定要遍历的集合。
  (3)varStatus有4个状态----index/当前循环的索引值,count/循环的次数,frist、last/是否为第一个或最后位置    
  (4)begin指定遍历的开始位置(int型从取值0开始)。
  (5)end指定遍历结束的位置(int型,默认集合中最后一个元素)。
  (6)step遍历的步长(大于0的整型)。

3.4、循环标签——forTokens标签    该标签用于浏览字符串,并根据指定的字符将字符串截取。

    <c:forTokens var="n" items="1*2*3*4*5*6*7" delims="*" begin="1" end="3" varStatus="s">// var、items和delims是必须值
                 <c:out value="${n}" /><br>
    </c:forTokens>

【参数解析】:
    (1)items指定被迭代的字符串。
  (2)delims指定使用的分隔符。

四、国际化标签库使用说明

  在JSP页面引入国际化标签库库的代码为:<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

   format标签库:做国际化格式化,分两类 :                                                                                                 

        1.国际化核心标 签:<fmt:setLocale>、<fmt:bundle>、<fmt:setBundle>、<fmt:message>、<fmt:param>、<fmt:requestEncoding>

     2.格式化标 签:<fmt:timeZone>、<fmt:setTimeZone>、<fmt:formatNumber>、<fmt:parseNumber>、<fmt:formatDate>、<fmt:parseDate>

4.1、<fmt:formatNumber>标签   用于格式化数字

  <fmt:formatNumber value="123.123456789" pattern="0.00"/> 保留两位小数
<fmt:formatNumber value="1000.888" type="currency" /> 结果将被保存在“ money ”变量中,将根据 Locale 环境显示当地的货币格式
<fmt:formatNumber type="number" value="45678.2345" /> 格式数字(45,678.234) 
<fmt:formatNumber type="percent" value="0.2345" />格式百分比(23%) 

属性描述 
  value:格式化的数字,该数值可以是 String 类型或 java.lang.Number 类型的实例 
  type:格式化的类型,可能值包括:currency(货币)、number(数字)和percent(百分比)
  pattern:格式化模式 
  var:结果保存变量 
  scope:变量的作用范围 
  maxIntegerDigits:指定格式化结果的最大值 
  minIntegerDigits:指定格式化结果的最小值 
  maxFractionDigits:指定格式化结果的最大值,带小数 
  minFractionDigits:指定格式化结果的最小值,带小数 

4.2、<fmt:formatDate>标签  用于格式化日期

<fmt:formatDate value="${user.birthDay}" pattern="yyyy-MM-dd"/>

五、JSTL函数(EL函数)使用说明

      在JSP页面引入EL函数库的代码为:<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

 

<c:when test="${fn:length(picture.pictureType) > 16}">
      <c:out value="${fn:substring(picture.pictureType, 0, 16)}" />
</c:when>
原文地址:https://www.cnblogs.com/mcahkf/p/5674097.html