1.JSTL
定义:JSP Standard Tag Library,JSP标准标签库。
作用:1.JSTL标签库的使用是为类弥补html表的不足,规范自定义标签的使用而诞生的。
2.尽可能避免在jsp页面中出现java逻辑代码。
2.如何在JSP中使用JSTL
首先,导入standard.jar和jstl.jar两个jar包。
其次,在JSP页面中添加对JSTL的引用:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
3.核心标签库
JSTL的核心标签库标签共13个,从功能上可以分为4类:
1>.表达式控制标签
out标签、set标签、remove标签、catch标签。
2>.流程控制标签
if标签、choose标签、when标签、otherwise标签。
3>.循环标签
forEach标签、forTokens标签。
4>.URL操作标签
import标签、url标签、redirect标签。
4.核心标签库的用法
1>.<c:out>标签:用来显示数据对象(字符串、表达式)的内容或结果。相当于 <% out.println(“字符串")%> 或 <%=表达式%>
【语法1】:<c:out value="要显示的数据对象" [escapeXml="true|false"] [default="默认值"]>
【语法2】:<c:out value="要显示的数据对象" [escapeXml="true|false"]>默认值</c:out>
value:指定要输出的变量或表达式。
escapeXml:设定是否转换特殊字符(如<、>等一些转义字符)
default:为默认输出结果。如果使用表达式得到的结果为null(注意与空区别),将会输出默认结果。
2>.<c:set>标签:主要用于将变量存取于JSP范围中或JavaBean属性中。
【语法1】<c:set value="值1" var="name1" [scope="page|request|session|application"]>
【语法2】<c:set var="name2" [scope="page|request|session|application"]>
【语法3】<c:set value="值3" target="JavaBean对象" property="属性名"/>
【语法4】<c:set target="JavaBean对象" property="属性名">值4</c:set>
3>.<c:remove>标签:主要用来从指定的JSP范围内移除指定的变量。
【语法】<c:remove var="变量名" [scope="page|request|session|application"]/>
4>.<c:if>标签:同程序中的if作用相同,用来实现条件控制。
【语法1】<c:if test="条件1" var="name" [scope="page|request|session|application"]>
【语法2】<c:if test="条件2" var="name" [scope="page|request|session|application"]>结果2</c:if>
【参数说明】:
I、test属性用于存放判断的条件,一般使用EL表达式来编写。
II、var指定名称用来存放判断的结果,类型为true或false。
III、scope用来存放var属性存放的范围。
5>.<c:choose>、<c:when>和<c:otherwise>标签:
注意:这3个标签通常情况下是一起使用的,<c:choose>标签作为<c:when>和<c:otherwise>标签的父标签来使用。
6>.<c:forEach>标签:该标签根据循环条件遍历集合(Collection)中的元素。
<c:forEach var="name" items="Collection" varStatus="StatusName" begin="begin" end="end" step="step">
所有内容
</c:forEach>
【参数解析】:
I、var设定变量名用于存储从集合中取出元素。
II、items指定要遍历的集合。
III、varStatus设定变量名,该变量用于存放集合中元素的信息。
IV、begin、end用于指定遍历的起始位置和终止位置(可选)。
V、step指定循环的步长。
【varStatus有4个状态属性】:
index:当前循环的索引值 count:循环的次数 frist:是否为第一个位置 last:是否为最后一个位置
5.I18N格式标签库
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
1>.数字日期格式化标签
formatNumber标签、formatData标签、parseNumber标签、parseDate标签、timeZone标签、setTimeZone标签
2>.读取消息资源。
bundle标签、message标签、setBundle标签。
3>.国际化。
setlocale标签、requestEncoding标签。
6.数字日期格式化标签 - 用法
1>.<fmt:formatNumber>标签:该标签主要用来格式化数字。
【语法】:<frm:formatNumber value="被格式化的数据"[type="number|currency|percent"] [var="name"] [scope=page|request|session|application] />
number:数值 currency:金额 percent:百分比
2>.<fmt:formatDate>标签:该标签主要用来格式化日期和时间。
【语法】:<fmt: formatDate value="date" [type="time|date|both"]
[pattern="pattern"]
[dateStyle="default|short|medium|long|full"]
[timeStyle="default|short|medium|long|full"]
[timeZone="timeZone"]
[var="name"]
[scope="page|request|session|application"]
/>
<fmt:formatDate value="${xx}" pattern="dd/MM/yyyy hh:mm aa"/>