JSTL
1.概念
- JavaSever Page Tag Library 中文意为: JSP 标准标签库
- JSP 标准标签库(JSTL)是一个 JSP 标签集合,它封装了 JSP 应用的通用核心功能。JSTL 支持通用的、结构化的任务,比如迭代,条件判断,XML 文档操作,国际化标签,SQL 标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。
- 是由 Apache 组织提供的免费开源 jsp 标签库
2.用途及作用
-
用于简化和替换 jsp 页面上的 java 代码;
-
以一种统一的方式减少了 JSP 中的 Scriptlets 代码数量;
-
将业务封装到 JSTL 可以很方便的重用;
-
将数据与显示分离;
-
简化了 JSP 和 Web 应用程序的开发;
-
允许 JSP 设计工具与 Web 应用程序开发的进一步集成;
3.使用步骤
-
导入 Jstl 相关 jar 包
-
引入标签库 :taglib指令 :<% @ taglib %>
-
使用标签
4.常用的 JSTL 标签
- 因为 JSTL 为一个标签库,里面有很多的标签,所以这里只举例三个比较常用的标签
- if
- choose
- foreach
if标签语法格式
<c:if> test="<boolean>" var="<string>" scope="<string>">
....
</c:if>
属性
属性 | 描述 | 是否必要 | 默认值 |
---|---|---|---|
test | 条件 | 是 | 无 |
var | 存储条件结果的变量 | 否 | 无 |
scope | var属性的作用域 | 否 | page |
if 实例
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>c:if 标签实例</title>
</head>
<body>
<c:set var="salary" scope="session" value="${2000*2}"/>
<c:if test="${salary > 2000}">
<p>我的工资为: <c:out value="${salary}"/><p>
</c:if>
</body>
</html>
运行结果:
我的工资为:4000
choose标签语法格式
<c:choose>
<c:when test="<boolean>">
...
</c:when>
<c:when test="<boolean>">
...
</c:when>
...
...
<c:otherwise>
...
</c:otherwise>
</c:choose>
属性
属性 | 描述 | 是否必要 | 默认值 |
---|---|---|---|
test | 条件 | 是 | 无 |
choose 实例
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>c:choose 标签实例</title>
</head>
<body>
<c:set var="salary" scope="session" value="${2000*2}"/>
<p>你的工资为 : <c:out value="${salary}"/></p>
<c:choose>
<c:when test="${salary <= 0}">
太惨了。
</c:when>
<c:when test="${salary > 1000}">
不错的薪水,还能生活。
</c:when>
<c:otherwise>
什么都没有。
</c:otherwise>
</c:choose>
</body>
</html>
运行结果:
你的工资为 : 4000
不错的薪水,还能生活。
foreach 标签语法格式
<c:forEach
items="<object>"
begin="<int>"
end="<int>"
step="<int>"
var="<string>"
varStatus="<string>">
...
属性
属性 | 描述 | 是否必要 | 默认值 |
---|---|---|---|
items | 要被循环的信息 | 否 | 无 |
begin | 开始的元素(0=第一个元素,1=第二个元素) | 否 | 0 |
end | 最后一个元素(0=第一个元素,1=第二个元素) | 否 | Last element |
step | 每一次迭代的步长 | 否 | 1 |
var | 代表当前条目的变量名称 | 否 | 无 |
varStatus | 代表循环状态的变量名称 | 否 | 无 |
forEach实例
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>c:forEach 标签实例</title>
</head>
<body>
<c:forEach var="i" begin="1" end="5">
Item <c:out value="${i}"/><p>
</c:forEach>
</body>
</html>
运行结果:
Item 1
Item 2
Item 3
Item 4
Item 5