JSTL 标签库 全称是 JSP Standard Tag Library ,即 JSP 标准标签库。
EL 表达式主要是为了替换 jsp 中的表达式脚本,而标签库则是为了替换jsp中的代码脚本。这样使得整个 jsp 页面 变得更加简洁,从而提高程序的可读性,降低程序的维护难度。
JSTL 由五个不同功能的标签库组成:
功能范围 | URI | 前缀 | taglib 指令 |
---|---|---|---|
核心标签库(重点) | http://java.sun.com/jsp/jstl/core | c | <%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %> |
格式化 | http://java.sun.com/jsp/jstl/fmt | fmt | <%@ taglib prefix=“fmt” uri=“http://java.sun.com/jsp/jstl/fmt” %> |
函数 | http://java.sun.com/jsp/jstl/functions | fn | <%@ taglib prefix=“fn” uri=“http://java.sun.com/jsp/jstl/functions” %> |
数据库(不使用) | http://java.sun.com/jsp/jstl/sql | sql | <%@ taglib prefix=“sql” uri=“http://java.sun.com/jsp/jstl/sql” %> |
XML(不使用) | http://java.sun.com/jsp/jstl/xml | x | <%@ taglib prefix=“x” uri=“http://java.sun.com/jsp/jstl/xml” %> |
先下载 jstl 标签库的 jar 包
下载地址:http://tomcat.apache.org/taglibs/
①进入下载地址后会出现以下页面,点击红框中的“Standard”按钮进入jstl版本页面。
②进入jstl版本界面后,点击“download”按钮进入下载界面
③进入下载界面后,会出现jstl各个jar包的下载连接,直接点击需要下载的jar包即可下载,一般只需下载Impl和Spec即可。
Impl: taglibs-standard-impl-1.2.5.jar JSTL实现类库
Spec: taglibs-standard-spec-1.2.5.jar JSTL标准接口
EL: taglibs-standard-jstlel-1.2.5.jar JSTL1.0标签-EL相关
Compat: taglibs-standard-compat-1.2.5.jar 兼容版本
导入下载的jar包
将下载的jar包粘贴进WEB-INF下的lib目录下,并add as library
3.使用 taglib 指令引入标签库
至此,jstl标签库就可以使用了
作用:set 标签可以往域中保存数据
案例:
作用:if 标签可以用来做 if 判断
案例:
作用:多路判断,跟 switch … case … default 非常接近
案例:
作用:遍历输出
案例:
案例:
案例:
案例:List 中存放 Student 类,有属性:编号,用户名,密码,年龄, 电话信息
Student类:
public class Student { private Integer id; private String username; private String password; private Integer age; private String phone; public Student(Integer id, String username, String password, Integer age, String phone) { this.id = id; this.username = username; this.password = password; this.age = age; this.phone = phone; } public Student() { } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } @Override public String toString() { return "Student{" + "id=" + id + ", username='" + username + '\'' + ", password='" + password + '\'' + ", age=" + age + ", phone='" + phone + '\'' + '}'; } }
forEach标签中的status属性是LoopTagSupport类的内部类,并实现了LoopTagStatus接口
LoopTagStatus接口有以下方法:
那么,通过EL表达式 status的点运算可以调用以上方法: