是什么
- JSTL是apache对EL表达式的扩展(也就是说JSTL依赖EL)
- JSTL是标签语言,使用起来非常方便,它与JSP动作标签一样
- JSTL它不是jsp的内置标签,所以要我们自己导包
为什么会出现
怎么用
- 导入jstl的jar包
- 使用taglib指令导入标签库
核心标签库
最核心的一个标签库,也是最常用的,重点掌握
导入标签库:<%@ 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/fmt" prefix="fmt"%>
fn
- ${fn:length(list)}:获取list的长度
fmt
标签 | 说明 | 属性 |
---|
<fmt:formatDate value="${date}" pattern=“yyyy-MM-dd”/> | 格式化时间,把Date类型的时间格式化成字符串类型 | pattern="yyyy-MM-dd"格式化参数 |
<fmt:formatNumber value=“123.33333” maxFractionDigits=“3”/> | 格式化数字,小数点后保留3位 | pattern=#.## |
core
标签 | 说明 |
---|
<c:out value=”${name}” default=”默认值”/> | |
<c:out value=”admin” default=”默认值”/> | 当value值为空时,输出默认值 |
<c:set var=”a” value=”hello” scope=”session”/> | 在session中添加name为a,value为hello的数据。 |
<c:remove var=“a” scope=”page”/> | 删除pageContext中name为a的数据 |
<c:url value="/"/> | 输出上下文路径:/项目名/ |
<c:url value="/" var=“a” scope=“request”/> | 把本该输出的结果赋给变量a。范围为request |
<c:url value="/abc" var=“name” scope=“request”><c:param name=“username” value=“123”></c:param><c:param name=“password” value=“abc”></c:param></c:url> | 输出:/项目名/abc?username=123&password=abc如果参数中包含中文,那么会自动使用URL编码! |
<c:if test="${a==3}">a==3</c:if> | if标签的test属性必须是一个boolean类型的值,如果test的值为true,那么执行if标签的内容,否则不执行 |
<choose> | choose标签对应Java中的switch语句,。when标签的test为true时,会执行这个when的内容。当所有when标签的test都为false时,才会执行otherwise标签的内容 |
<c:forEach> | 循环遍历集合和map |