<%@ page import="day07.Student" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%--
Created by IntelliJ IDEA.
User: 83568
Date: 2022/5/20
Time: 17:55
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--
找到lib目录下jar包standard中META-INF文件夹里的c.tld文件,
打开后可以看到uri元素,
该元素中的内容就是: http://java.sun.com/jsp/jstl/core
--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
<style>
table {
border: 1px solid black;
width: 500px;
margin: 0 auto;
}
td {
border: 1px solid black;
}
.class {
background-color: pink;
}
</style>
</head>
<body>
<%--
JSTL(Java server pages standarded tag library,即JSP标准标签库)
是由JCP(Java Community Process)所制定的标准规范,
它主要提供给Java Web开发人员一个标准通用的标签库,
并由Apache的Jakarta小组来维护。
开发人员可以利用这些标签取代JSP页面上的Java代码,
从而提高程序的可读性,降低程序的维护难度。
--%>
<%
Student stu = new Student("李四", "男", 30);
request.setAttribute("stu", stu);
Student stu1 = new Student("张三", "女", 18);
Student stu2 = new Student("李四", "男", 28);
Student stu3 = new Student("王五", "女", 38);
Student stu4 = new Student("赵六", "男", 48);
List<Student> list = new ArrayList<>();
list.add(stu1);
list.add(stu2);
list.add(stu3);
list.add(stu4);
request.setAttribute("stus", list);
request.setAttribute("day", "6");
%>
<%--
1. set标签
语法:<c:set 属性=值 ......></c:set>
作用:赋值
--%>
<c:set var="username" scope="session" value="张三"></c:set>
<%=session.getAttribute("username")%><br>
<c:set target="${stu}" property="name" value="王五"></c:set>
<%-- ${requestScope.stu.name} --%>
${stu.name}<br>
<%--
2. out标签
语法:<c:out value="输出信息"></c:out>
作用:向浏览器输出信息
注意:在日常开发中,out标签很少使用,
因为EL表达式可以更方便地向浏览器页面输出信息
--%>
<c:out value="Hello World!"></c:out><br>
<c:out value="${stu.age}"></c:out>
<%--
3. if标签
语法:<c:if test="表达式"></c:if>
作用:判断语句
--%>
<%-- form表单元素前后会自动换行 --%>
<form action="">
<input type="radio" name="gender" value="男"
<c:if test="${stu.gender == '男'}">checked</c:if>
>男
<input type="radio" name="gender" value="女"
<c:if test="${stu.gender == '女'}">checked</c:if>
>女
</form>
<%--
4. for标签
语法:<c:forEach 属性=值 ......></c:forEach>
作用:循环语句
--%>
<table>
<tr>
<td>编号</td>
<td>姓名</td>
<td>性别</td>
<td>年龄</td>
</tr>
<%--
var:迭代变量
items:被迭代的数组或集合
varStatus:迭代状态
--%>
<c:forEach var="stu" items="${stus}" varStatus="sta">
<tr <c:if test="${sta.count % 2 == 0}">class="class"</c:if>>
<td>${sta.count}</td>
<td>${stu.name}</td>
<td>
<c:if test="${stu.gender == '男'}">男</c:if>
<c:if test="${stu.gender == '女'}">女</c:if>
</td>
<td>${stu.age}</td>
</tr>
</c:forEach>
</table>
<%--
5. choose标签
语法:
<c:choose>
<c:when test="表达式"></c:when>
<c:otherwise></c:otherwise>
</c:choose>
作用:分支语句
--%>
今天是:
<c:choose>
<c:when test="${day == '0'}">
星期日
</c:when>
<c:when test="${day == '1'}">
星期一
</c:when>
<c:when test="${day == '2'}">
星期二
</c:when>
<c:when test="${day == '3'}">
星期三
</c:when>
<c:when test="${day == '4'}">
星期四
</c:when>
<c:when test="${day == '5'}">
星期五
</c:when>
<c:when test="${day == '6'}">
星期六
</c:when>
<c:otherwise>
错误!
</c:otherwise>
</c:choose>
<%--
6. forTokens标签
语法:<c:forTokens 属性=值 ......></c:forTokens>
作用:根据分隔符将字符串转换成字符串数组,再进行迭代
--%>
<%--
item:需要被分隔迭代的字符串
delims:分隔符
var:迭代变量
--%>
<c:forTokens items="张三,30,男,郑州" delims="," var="str">
<h2>${str}</h2>
</c:forTokens>
<%--
7. redirect标签
语法:<c:redirct url="url地址"></c:redirect>
作用:重定向
--%>
<c:redirect url="index.jsp"></c:redirect>
</body>
</html>
JSTL中的7个c标签及其应用
于 2022-05-20 20:05:04 首次发布