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="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>