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 标签库的使用步骤:

  1. 先导入 jstl 标签库的 jar 包。
    • taglibs-standard-impl-1.2.1.jar
    • taglibs-standard-spec-1.2.1.jar
  2. 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}

相关