JSTL
1、概念:Java server pages standarded tag library,即JSP标准标签库
*是由Apache组织提供的开源的免费jsp标签
2、作用:用于简化和替换jsp页面上的Java代码。
3、使用步骤:
1)导入jstl相关的jar包
2)引入标签库: taglib指令 :<%@ taglib%>
3)使用标签
4、常用的jstl标签
1) if :相当于Java代码中的if语句
2) choose :相当于Java代码的switch语句
3)foreach :相当于Java代码的if语句
1、if标签:
1、属性:
*test必须属性,接受boolean表达式
*如具有表达式为true,则显示if标签内容,如果为false则不显示标签内容。
*一般情况下,test属性值会结合el表达式一起用
2、注意c:if标签没有else情况,想要else情况,则可以在定义一个c:if标签
<%--
Created by IntelliJ IDEA.
User: shangdi
Date: 2020/10/23
Time: 9:50
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page isELIgnored="false" %>
<html>
<body>
<%
//判断request 域中的一个list集合是否为空,如果不为null则显示遍历集合
List list=new ArrayList();
list.add("aaaa");
request.setAttribute("list",list);
request.setAttribute("number",3);
%>
<c:if test="${not empty list}">
遍历集合..
</c:if>
<br>
<c:if test="${number %2 !=0}">
${number}为奇数
</c:if>
</body>
</html>
2、choose标签
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page isELIgnored="false" %>
<html>
<body>
<%--
完成数字编号对应星期几案例
1、域中存取一数字
2、使用choose标签取出数字 相当于switch声明
3、使用我when标签做数字判断 相当于case
4、otherwise标签做其他情况的声明 相当于default
--%>
<%
request.setAttribute("number",3);
%>
<c:choose>
<c:when test="${number==1}">星期一</c:when>
<c:when test="${number==2}">星期二</c:when>
<c:when test="${number==3}">星期三</c:when>
<c:when test="${number==4}">星期四</c:when>
<c:when test="${number==5}">星期五</c:when>
<c:when test="${number==6}">星期六</c:when>
<c:when test="${number==7}">星期日</c:when>
<c:otherwise>数字输入有误</c:otherwise>
</c:choose>
</body>
</html>
3、foreach标签相当于Java代码的for循环
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page isELIgnored="false" %>
<html>
<body>
<%--
foreach标签相当于Java代码的for循环
1、完成重复操作
for(int i=0;i<10;i++){
}
*属性
begin: 开始值 在这里相当于0
end: 结束值 在这里相当于10
var: 临时变量 在这里相当于i
step: 步长
varStatus: 循环状态对象
index: 容器中元素的索引,从0开始
count: 循环次数
2、遍历容器
List<user> list;
for(User user:list){ //list 指容器 User 是泛型或者说User是容器中元素的类型
}
*属性:
items: 容器对象 在这里相当于 list
var : 容器中元素的临时变量 在这里相当于 user
varStatus: 循环状态对象
index: 容器中元素的索引,从0开始
count: 循环次数
--%>
<c:forEach begin="1" end="10" var="i" step="1" varStatus="s">
${i} <h3>${s.index}</h3> <h4>${s.count}</h4> <br>
</c:forEach>
<br>
<%
List list=new ArrayList();
list.add("aaa");
list.add("bbb");
list.add("ccc");
request.setAttribute("list",list);
%>
<c:forEach items="${list}" var="str" varStatus="s">
${s.index} ${s.count} ${str} <br>
</c:forEach>
</body>
</html>