->JSTL的使用和EL表达式是分不开的
->JSTL标签库分为5类
1.核心标签库(这里只介绍该标签库)
2.I18N格式化标签库
3.SQL标签库
4.XML标签库
5.函数标签库
->核心标签库氛围4种标签
1.表达式控制标签:out, set, remove, catch
2.流程控制标签:if, choose, when, otherwise
3.循环标签库:forEach, forTokens
4.URL标签库:import, url, redirect
->核心标签库引入代码
<%@ taglib perfix="c" uri="http://java.sun.com/jsp/jstl/core" %>
-><c:out>标签:用来显示数据对象(字符串或表达式)
Java语言:<% out.print("字符串") %>,<%= 表达式 %>
标签语言:<c:out value="字符串" />,<c:out value="表达式" />
两种语法:<c:out value="要输出的对象" default="默认值" escapeXml="true | false" />
<c:out value="要输出的对象" escapeXml="true | false" >默认值</c:out>
-value:指定要输出的对象
-escapeXml:设定是否转义特定字符,默认为true,不转义,反之false为转义
-default:当El表达式为null时(注意null与空的区别),会显示默认值
-><c:set>标签:将变量值存储与JSP作用域范围中或JavaBean属性中
四种语法:<c:set scope="page | request | session | application" var="name1" value="value1" />
<c:set scope="page | request | session | application" var="name2">value2</c:set>
<c:set target="JavaBean" property="name3" value="value3" />
<c:set target="JavaBean" property="name4">value4</c:set>
-前两种含义:把变量名为"name1","name2"的值为"value1","value2"的变量存储在指定的scope作用范围内
-后两种含义:把"value3","value4"赋值给JavaBean对象的"name3","name4"属性
-><c:remove>标签:从指定的JSP范围内移除指定的变量
<c:remove var="变量名" scope="page | request | session | application" />
-><c:catch>标签:用来处理可能发生异常的代码,并将异常信息存储,主要用于标签语言中产生的异常
<c:catch var="name1" >容易产生异常的代码</c:catch>
-var:定义存储错误信息的变量名,可以省略,只不过无法输出错误信息
-><c:if>标签:与java语言中的if作用相同,实现条件控制
语法:<c:if test="conditions" var="name" scope="page | request | session | application">内容</c:if>
-test:存放判断条件,一般用EL表达式编写
-var:用来存放判断的结果类型:true | false
-scope:作用范围
-><c:choose>,<c:when>和<c:otherwise>标签:通常一起使用,类比java雨中的if...else...
语法:<c:choose>
<c:when test="condition">//业务逻辑</c:when>
<c:when test="condition">//业务逻辑</c:when>
...
<c:otherwise>//业务逻辑</c:otherwise>
</c:choose>
-><c:forEach>标签:根据循环条件实现循环遍历
语法:<c:forEach var="name" items="object" begin="begin" end="end" step="step" varStatus="statusName">内容</c:forEach>
-var:设定变量名用于存储循环便利出的元素
-items:指定要遍历的对象
-begin,end,step:设定遍历起点,终点和步长
-varStatus:设定变量名用于存放元素信息,信息状态如下表:
属性名 | 类型 | 说明 |
index | int | 当前循环的索引值 |
count | int | 循环的次数 |
first | boolean | 是否为第一个位置 |
last | boolean | 是否为最后一个位置 |
-><c:forTokens>标签:该标签用于浏览字符串,并根据指定字符串进行截取
语法:<c:forTokens items="Object" delims="character" var="name" begin="begin" end="end" step="step" varStatus="statusName">//输出内容</c:forTokens>
-items:指定被迭代的字符串
-delims:指定使用的分隔符
-var:定义用来存储遍历出来元素的变量
-begin,end,step:指定遍历开始,结束的位置和步长
-varStatus:与forEach中的varStatus作用相同
-><c:import>标签:该标签可以把其他静态或动态文件包含到本JSP页面(可包含其他web应用中的文件,甚至是网络上的资源)
语法:<c:import url="url" context="context" var="name" scope="page | request | session | application" varReader="name" charEncoding="encoding">//内容</c:import>
-url:被导入资源的URL路径
-context:当使用相对路径方法指定外部文件时,这个属性指定的是外在文件的名称
-var:以String类型存入被包含文件的内容
-scop:作用范围
-charEncoding:被导入文件的编码格式
-varReader:以Reader类型存储被包含文件的内容
-><c:redirect>标签:用来实现请求的重定向,与<jsp:redirect>类似
两种语法:<c:redirect url="url" context="context" />
<c:redirect url="url" context="context">
<c:param name="paramName" value="value" />
</c:redirect>
-><c:url>标签:用来重写url地址
两种语法:<c:url value="value" context="context" var="name" />
<c:url value="value" context="context" var="name">
<c:param name="paramName" value="value" />
</c:url>