一、概述
1、简介
JavaServer Pages Tag Library;JSP标准标签库;
2、作用
用于替换和简化JSP页面上的Java代码;
3、使用步骤
第一步:导入JSTL相关的Jar包;
链接: https://pan.baidu.com/s/1IP1mPV2tAm4K13759kKXDQ 提取码: zibo
第二步:引入标签库:taglib指令:<%@ tablib %>;
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
第三步:使用标签;
4、常用标签
if:相当于Java代码的if语句;
choose:相当于Java代码的switch语句;
foreach相当于Java代码的for循环语句;
二、if标签
代码演示:
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%--c:if标签
test属性接收布尔表达式,如果表达式为true则显示标签体内容,否则不显示;
一般情况下,test的属性值会结合EL表达式一起使用;
--%>
<%
List<Object> list = new ArrayList<>();
list.add("哈哈哈哈");
request.setAttribute("list",list);
request.setAttribute("num",12);
%>
<c:if test="${not empty list}"><h1>显示我啦!list不为空!</h1></c:if>
<%--判断是否为奇数--%>
<c:if test="${requestScope.num % 2 != 0}"><h1>奇数</h1></c:if>
<c:if test="${requestScope.num % 2 == 0}"><h1>不是奇数,是偶数</h1></c:if>
</body>
</html>
运行结果:
三、choose标签
代码演示:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%-- 在域中存入数据--%>
<%
request.setAttribute("num",3);
%>
<%--使用choose,处理数据
备注:
choose 相当于switch;
when 相当于case;
otherwise 相当于default;
--%>
<c:choose>
<c:when test="${requestScope.num == 1}">周一</c:when>
<c:when test="${requestScope.num == 2}">周二</c:when>
<c:when test="${requestScope.num == 3}">周三</c:when>
<c:when test="${requestScope.num == 4}">周四</c:when>
<c:when test="${requestScope.num == 5}">周五</c:when>
<c:when test="${requestScope.num == 6}">周六</c:when>
<c:when test="${requestScope.num == 7}">周七</c:when>
<c:otherwise>无效的数字</c:otherwise>
</c:choose>
</body>
</html>
运行结果:
四、foreach
代码演示:
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%--forreach:相当于Java的for循环:
作用:
1、完成重复的操作;
for(int i=0;i<10;i++){
}
属性:
begin:开始值,相当于0;
end:结束值,相当于10;
var:临时变量,相当于i;
step:步长,相当于++;
varStatus:循环的状态:
index索引,count循环的次数;
2、遍历容器;
List<User> list;
for(List user:list){
}
属性:
items:容器对象;
var:容器元素中的临时变量;
--%>
<%--1、完成重复的操作;--%>
<c:forEach begin="1" end="10" var="i" step="2" varStatus="s">
乌拉阿拉${i}索引是${s.index}循环次数是${s.count}<br/>
</c:forEach>
<%--2、遍历容器;--%>
<%--提前布置数据--%>
<%
List<String> list = new ArrayList<>();
list.add("大哥");
list.add("二哥");
list.add("三哥");
list.add("四哥");
request.setAttribute("list",list);
%>
<c:forEach items="${requestScope.list}" var="str" varStatus="s">
索引:${s.index}循环次数:${s.count}值:${str}<br/>
</c:forEach>
</body>
</html>
运行结果: