前言 JSP标准标签库(JSP Standard Tag Library)是Java EE网络应用程序开发平台的组成部分。它在JSP规范的基础上,扩充了一个JSP的标签库来完成一些通用任务,比如XML数据处理、条件执行、数据库访问、循环和国际化。 JSTL是在JCP下,作为JSR 52被开发出来的。(维基百科 )
准备工作 直接引入jar包
在Maven中引入依赖 pom.xml 1 2 3 4 5 6 7 8 9 10 <dependency > <groupId > jstl</groupId > <artifactId > jstl</artifactId > <version > 1.2</version > </dependency > <dependency > <groupId > taglibs</groupId > <artifactId > standard</artifactId > <version > 1.1.2</version > </dependency >
导入JSTL标签库
prefix="c"
:指定前缀,通常指定为c
1 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
域中数据的操作
用于往域中添加数据或修改已有数据
默认存入pageContext域中
<key>
:域中数据的键<value>
:域中数据键对应的值
1 <c:set var ="<key>" value="<value>" />
向其他域存入或修改数据
<name>
:其他域的名称
page
:pageContext域resquest
:request域session
:session域application
:application域
1 <c:set var ="<key>" value="<value>" scope="<name>" />
判断语句 if语句
<el>
:利用EL表达式,做判断。如果值为true
,则输出标签中的内容
1 2 3 <c:if test="<el>" > ... </c:if >
choose语句(相当于if else)
利用<c:otherwise></c:otherwise>
语句取反
1 2 3 4 5 6 7 8 <c:choose> <c:when test="<el>" > ... </c:when> <c:otherwise> ... </c:otherwise> </c:choose>
循环语句 普通的方式
begin
:开始下标end
:结尾下标var
:指定的变量step
:步进数,默认为1
1 2 3 <c:forEach begin="" end="" step="" var ="i" > ${i} </c:forEach>
迭代的方式
items
:通过EL表达式,指定需要遍历的数组或集合var
:指定的变量
1 2 3 <c:forEach items="" var ="value" > ${value} </c:forEach>
迭代对象中的属性
如果迭代的是一个对象中的属性,需要给实体类定义get方法
src/main/java/pojo/User.java 1 2 3 4 5 6 7 8 9 10 11 12 13 public class User { private Integer id; private String name; public Integer getId () { return id; } public String getName () { return name; } }
src/main/resource/xxx.jsp 1 2 3 <c:forEach items="" var ="user" > ${user.id} </c:forEach>
当前遍历状态
varStatus
:当前遍历状态
count
:返回当前是第几次遍历,从1开始index
:返回遍历的索引,从0开始first
:只有第一次遍历返回truelast
:只有最后一次遍历返回true
1 2 3 4 5 6 7 <c:forEach items="" var ="" varStatus="vs" > ${vs.index} ${vs.count} ${vs.first} ${vs.last} ... </c:forEach>
完成