java学习笔记 - web基础八(JSTL)

介绍

  • JSTL 标签库 全称是指 JSP Standard Tag Library JSP 标准标签库。是一个不断完善的开放源代码的 JSP 标

    签库

引入标签库

  • 使用 taglib 指令引入标签库
1
2
3
4
5
6
7
8
9
10
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" %>

使用步骤

  1. 先导入 jstl 标签库的 jar 包

    • taglibs-standard-impl-1.2.1.jar

    • taglibs-standard-spec-1.2.1.jar

  2. 使用 taglib 指令引入标签库

    • ```html’
      <%@ taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core“ %>
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19

      ## 核心库使用

      ### <c:if />

      - if 标签用来做 if 判断

      ```html
      <%--
      ii.<c:if />
      if 标签用来做 if 判断。
      test 属性表示判断的条件(使用 EL 表达式输出)
      --%>
      <c:if test="${ 12 == 12 }">
      <h1>12 等于 12</h1>
      </c:if>
      <c:if test="${ 12 != 12 }">
      <h1>12 不等于 12</h1>
      </c:if>

< c:choose> < c:when> < c:otherwise>标签

-作用:多路判断。跟 switch … case …. default 非常接近

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<%--
choose 标签开始选择判断
when 标签表示每一种判断情况
test 属性表示当前这种判断情况的值
otherwise 标签表示剩下的情况
<c:choose> <c:when> <c:otherwise>标签使用时需要注意的点:
1、标签里不能使用 html 注释,要使用 jsp 注释
2、when 标签的父标签一定要是 choose 标签
--%>
<%
request.setAttribute("height", 180);
%>
<c:choose>
<%-- 这是 html 注释 --%>
<c:when test="${ requestScope.height > 190 }">
<h2>小巨人</h2>
</c:when>
<c:when test="${ requestScope.height > 180 }">
<h2>很高</h2>
</c:when>
<c:when test="${ requestScope.height > 170 }">
<h2>还可以</h2>
</c:when>
<c:otherwise>
<c:choose>
<c:when test="${requestScope.height > 160}">
<h3>大于 160</h3>
</c:when>
<c:when test="${requestScope.height > 150}">
<h3>大于 150</h3>
</c:when>
<c:when test="${requestScope.height > 140}">
<h3>大于 140</h3>
</c:when>
<c:otherwise>
其他小于 140
</c:otherwise>
</c:choose>
</c:otherwise>
</c:choose>

  • 遍历输出使用
1
2
3
4
5
6
7
8
9
10
11
12
13
<%--1.遍历 1 到 10,输出
begin 属性设置开始的索引
end 属性设置结束的索引
var 属性表示循环的变量(也是当前正在遍历到的数据)
for (int i = 1; i < 10; i++)
--%>
<table border="1">
<c:forEach begin="1" end="10" var="i">
<tr>
<td>第${i}行</td>
</tr>
</c:forEach>
</table>