一、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标签。
<%@ taglib %>引入标签库
===========================================================================================
1、以classPath中,加入jar包: standard-1.1.2.jar , jstl-1.1.2.jar
2、在相目\WEB-INF\tld\文件夹中放入常用的tld文件:c.tld,fmt.tld
3、在jsp文件的顶部加入以下内容:
<%@ taglib uri="地址" prefix="c" %>
<%@ taglib uri="WEB-INF/c.tld" prefix="c"%> //本地
<%@ 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" %>
标签
为循环控制,它可以将集合(Collection)中的成员循序浏览一遍。
标签的语法 说明 :
语法1:迭代一集合对象之所有成员
<c:forEach [var="varName"] items="collection" [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>
本体内容
</c:forEach>
实例
<c:forEach var="user" items="${userList}">
<tr>
<td>${user.id}</td>
<td>${user.userName}</td>
<td>${user.price}</td>
</tr>
</c:forEach>
//注意bean的大小写!
语法2:迭代指定的次数
<c:forEach [var="varName"] [varStatus="varStatusName"] begin="begin" end="end" [step="step"]>
本体内容
</c:forEach>
标签的 属性说明 :
标签
标签主要是用来输出数据对象(字符串、表达式)的内容或结果。
在使用Java脚本输出时常使用的方式为: <% out.println(“字符串”)%> 或者 <%=表达式%> ,在web开发中,为了避免暴露逻辑代码会尽量减少页面中的Java脚本,使用标签就可以实现以上功能。
1
2
JSTL的使用是和EL表达式分不开的,EL表达式虽然可以直接将结果返回给页面,但有时得到的结果为空,有特定的结果处理功能,EL的单独使用会降低程序的易读性,建议把EL的结果输入放入标签中。
标签的语法
标签的使用有两种语法格式:
【语法1】: