08. JSTL标签库
一、JSTL标签库
1.1、什么是JSTL标签库
??JSTL 标签库 全称是指 JSP Standard Tag Library JSP 标准标签库。是一个不断完善的开放源代码的 JSP 标 签库。EL 表达式主要是为了替换 jsp 中的表达式脚本,而标签库则是为了替换代码脚本。这样使得整个 jsp 页面 变得更佳简洁。
??JSTL有五个不同功能的标签库组成。
功能范围 | URL | 前缀 |
---|---|---|
核心标签库 | http://java.sun.com/jsp/jstl/core | c |
格式化 | http://java.sun.com/jsp/jstl/fmt | fmt |
函数 | http://java.sun.com/jsp/jstl/functions | fn |
数据库 | http://java.sun.com/jsp/jstl/sql | sql |
XML | http://java.sun.com/jsp/jstl/xml | x |
二、JSTL标签库的使用
??在 jsp 标签库中使用 taglib 指令引入标签库。
- CORE 标签库
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- XML 标签库
- <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
- FMT 标签库
- <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
- SQL 标签库
- <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
- FUNCTIONS 标签库
- <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
??JSTL 标签库的使用步骤:
- 先导入 jstl 标签库的 jar 包。
- taglibs-standard-impl-1.2.1.jar
- taglibs-standard-spec-1.2.1.jar
- taglibs-standard-spec-1.2.1.jar
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
2.1、core核心库使用
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Title
<%--
作用:set 标签可以往域中保存数据
域对象.setAttribute(key,value);
scope 属性设置保存到哪个域
page 表示 PageContext 域(默认值)
request 表示 Request 域
session 表示 Session 域
application 表示 ServletContext 域
var 属性设置 key 是多少
value 属性设置值
--%>
保存之前:${requestScope.abc}
保存之后:${requestScope.abc}
<%--
if 标签用来做 if 判断。
test 属性表示判断的条件(使用 EL 表达式输出)
--%>
3 != 5
<%--
标签
作用:多路判断。
choose 标签开始选择判断
when 标签表示每一种判断情况
test 属性表示当前这种判断情况的值
otherwise 标签表示剩下的情况
标签使用时需要注意的点:
1、标签里不能使用 html 注释,要使用 jsp 注释
2、when 标签的父标签一定要是 choose 标签
--%>
<%
request.setAttribute("number",173);
%>
number > 180
number > 170
number > 160
number <= 160
<%--
作用:遍历输出使用。
begin 属性设置开始的索引
end 属性设置结束的索引
var 属性表示循环的变量(也是当前正在遍历到的数据)
step 属性表示遍历的步长值
varStatus 属性表示当前遍历到的数据的状态
--%>
${i}
${status}
获取当前遍历到的数据:${status.current}
<%-- 表示获取当前遍历到的数据 --%>
获取遍历到的索引:${status.index}
<%-- 表示获取遍历到的索引 --%>
获取遍历的个数:${status.count}
<%-- 表示获取遍历的个数 --%>
获取遍历是否为第一条:${status.first}
<%-- 表示获取遍历是否为第一条 --%>
获取遍历是否为最后一条 :${status.last}
<%-- 表示获取遍历是否为最后一条 --%>
获取遍历的元素值:${status.begin}
<%-- 表示获取遍历的元素值 --%>
获取遍历结束的元素值:${status.end}
<%-- 表示获取遍历结束的元素值 --%>
获取遍历的步长 :${status.step}
<%-- 表示获取遍历的步长 --%>
<%--
遍历 Object 数组 f
items 表示遍历的数据源(遍历的集合)
var 表示当前遍历到的数据
--%>
<%
request.setAttribute("array",new String[]{"aaa","bbb","ccc"});
%>
${item}
<%
Map map = new HashMap<>();
map.put("key1","value1");
map.put("key2","value2");
map.put("key3","value3");
request.setAttribute("map",map);
%>
${entry.key}:${entry.value}