JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。
JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。
根据JSTL标签所提供的功能,可以将其分为5个类别。
- 核心标签
- 格式化标签
- SQL 标签
- XML 标签
- JSTL 函数
配置JSTL标签库的jar到类路径
把jstl.jar和standard.jar拷贝到lib目录
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
一种是
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core_rt" %>
网上解释,其中RT库是基于传统请求的运行库,如果JSP不支持EL表达式时,用这个库替换非rt库,一般即可解决问题。
核心 标签
引用核心标签库
页面中添加如下的处理指令
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
1.1.1.<c:set>和<c:out>标签
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>
c:set和c:out标签
</h3>
<p>
<c:set var="a" scope="request" value="${20}"/> c:set设置变量,用的不多<br/>
<c:out value="${a}"/> c:out页面输出数据,用的有点多<br/>
${a}<br/>
<c:set var="b" value="${'<b>Hello World !</b>'}"/><br/>
${pageScope.b}<br/>
<c:out value="${b}" escapeXml="true"/><br/>
</p>
</body>
</html>
c:if标签
示例
<h3>c:if标签</h3>
<c:if test="${not (empty a)}">
a存在
</c:if>
<c:remove var="a"/>
<c:if test="${empty a}">
a不存在
</c:if><br/>
c:choose标签
示例
<h3>c:choose标签</h3>
<c:choose>
<c:when test="${not (empty a)}">
a存在
</c:when>
<c:otherwise>
a不存在
</c:otherwise>
</c:choose>
c:foreach标签
<h3>c:foreach</h3>
<%
//创建一个collection
HashSet<String>set=new HashSet<>();
set.add("hero");
set.add("hammmer");
set.add("sdhhs");
pageContext.setAttribute("set",set);
%>
<c:forEach varStatus="k" var="a" items="${set}" step="2" begin="0" end="2">
${k.index}:${a},
</c:forEach><br/>
<h4>迭代map集合</h4>
<%
HashMap<String,Integer>map =new HashMap<>();
map.put("a",2000);
map.put("b",3000);
map.put("c",4000);
pageContext.setAttribute("map",map);
%>
<c:forEach var="t" items="${map}">
${t.key}:${t.value}<br/>
</c:forEach><br/>
c:forTokens
这个标签是对一个根据某个字符分隔开的字符串数组进行迭代
示例
<h3>c:forTokens</h3>
<%
pageContext.setAttribute("aa","Hello World !,Hi every one !");
%>
<c:forTokens var="a" items="${aa}" delims=" |,">
${a}~
</c:forTokens>
格式化标签
JSTL格式化标签用来格式化并输出文本、日期、时间、数字。引用格式化标签库的语法如下:
<%@ taglib prefix="fmt"
uri="http://java.sun.com/jsp/jstl/fmt" %>
如果无法处理表达式则用
<%@ taglib prefix="fmt"
uri="http://java.sun.com/jsp/jstl/fmt_rt" %>
格式化时间
<h3>格式化时间:</h3>
<%
pageContext.setAttribute("cur",new Date());
%>
${cur}<br/>
<fmt:formatDate value="${cur}" pattern="yyyy年MM月dd日"/><br/>
<fmt:formatDate value="${cur}" pattern="yyyy年MM月dd日" var="aa"/>
<c:out value="${aa}"/><br/>
格式化数字
```html
<h3>格式化数字:</h3>
<%
pageContext.setAttribute("num",23423423234234234L);
%>
${num}<br/>
<fmt:setLocale value="en"/>
<fmt:formatNumber value="${num}" type="currency"/>格式化货币<br/>
<fmt:formatNumber value="${num}" pattern="000,000,000,000"/>格式化数字<br/>