1、JSTL
JSTL(JavaServerPages Standard Tag Library)JSP标准标签库,多用于JSP页面中的逻辑判断、循环等使用。
注意:\color{red}注意:注意:使用前必须要导入jstl标签库的jar包。
2、JSTL的使用
2.1、 通用标签: set、 out、 remove
index.jsp文件
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%-- 使用taglib指令,导入标签库,prefix属性设置的标签库的别名 --%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="jstl"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP之JSTL</title>
</head>
<body>
设置变量:<jstl:set scope="page" var="num" value="${1+2}"></jstl:set><br>
输出变量:<jstl:out value="${num}"></jstl:out><br>
移除变量:<jstl:remove var="num"/><br>
<%-- 移除后再次尝试输出num这个变量 --%>
输出变量:<jstl:out value="${num}"></jstl:out><br>
</body>
</html>
运行结果:
2.2、条件标签:if choose
index.jsp文件
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%-- 使用taglib指令,导入标签库,prefix属性设置的标签库的别名 --%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="jstl"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP之JSTL</title>
</head>
<body>
<br>jstl:if 判断<br>
<jstl:set var='num' value='10'></jstl:set>
<jstl:if test="${num > 5}">
num这个数大于5!<br>
</jstl:if>
<br>jstl:choose 选择<br>
<jstl:choose>
<jstl:when test="${num < 5}">
num这个数小于5!<br>
</jstl:when>
<jstl:when test="${num < 10}">
num这个数小于10!<br>
</jstl:when>
<jstl:when test="${num < 15}">
num这个数小于15!<br>
</jstl:when>
<jstl:otherwise>
num这个数不小于15!<br>
</jstl:otherwise>
</jstl:choose>
</body>
</html>
运行结果:
2.3 迭带标签:forEach
①、普通循环
index.jsp文件
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%-- 使用taglib指令,导入标签库,prefix属性设置的标签库的别名 --%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="jstl"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP之JSTL</title>
</head>
<body>
<br>jstl:forEach 普通循环<br>
<%-- step步长,默认是1 --%>
<jstl:forEach var='i' begin='1' end='10' step='2'>
${i}<br>
</jstl:forEach>
</body>
</html>
运行结果:
②、迭代器
jstl:forEach中的varStatus属性。
指向一个字符串,该字符串引用一个对象。 map.put("vs",一个对象);
这个对象记录着当前遍历的元素的一些信息:
getIndex():返回索引。从0开始
getCount():返回计数。从1开始
isLast():是否是最后一个元素
isFirst():是否是第一个元素
index.jsp文件
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%-- 使用taglib指令,导入标签库,prefix属性设置的标签库的别名 --%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="jstl"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP之JSTL</title>
<style type="text/css">
.odd{
background-color:pink;
}
.even{
background-color:yellow;
}
</style>
</head>
<body>
jstl:forEach 迭代器<br>
<%
List<String> strList = new ArrayList<String>();
strList.add("大桥未");
strList.add("波多野");
strList.add("水野朝");
strList.add("吉泽明");
//放置到page域中
pageContext.setAttribute("strList", strList);
%>
<table border="1">
<tr>
<td>数据</td>
<td>索引</td>
<td>第一个</td>
<td>最后一个</td>
<td>计数</td>
</tr>
<jstl:forEach items="${strList}" var="item" varStatus="vs">
<tr class=${vs.index%2 == 0 ? 'odd' : 'even'}>
<td>${item}</td>
<td>${vs.index}</td>
<td>${vs.first}</td>
<td>${vs.last}</td>
<td>${vs.count}</td>
</tr>
</jstl:forEach>
</table>
</body>
</html>
运行结果:
以上就是JSP中JSTL的主要内容,当然JSTL中还有其他标签,这里不再一一演示,用到的时候再去查API即可。