八. JSTL
1. pom 先引入两个jar包
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/taglibs/standard -->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
2. 引入taglib
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
3. 核心标签库:通用标签库、条件标签库、迭代标签库
通用标签库
- <c:set>赋值
a. 在某个作用域之中,给某个变量赋值
b.给对象的属性赋值
c.给map对象的属性赋值
d.给不存在的变量赋值(不可以给不存在的对象属性赋值赋值)
----给某个变量赋值----<br>
<c:set var="name" value="zs" scope="request"/>
${name}<br>
----给对象的属性赋值----<br>
${requestScope.student.sname}<br>
<c:set target="${requestScope.student}" property="sname" value="xzs"></c:set>
${requestScope.student.sname}<br>
----给map对象的属性赋值----<br>
${requestScope.map.cn}<br>
<c:set target="${requestScope.map}" property="cn" value="zhongguo"></c:set>
${requestScope.map.cn}<br>
----给不存在的变量赋值----<br>
<c:set var="y" scope="request" value="z"></c:set>
${requestScope.y}
----不可以给不存在的对象属性赋值赋值----<br>
- <c:out>显示
传统:${requestScope.student}<br>
jstl,c:out显示 :<c:out value="${requestScope.student}"></c:out><br>
jstl,c:out显示不存在的值 :<c:out value="${requestScope.stud}" default="不存在则显示默认值"></c:out><br>
escapeXml="true":<c:out value="<a href='https://www.baidu.com'>baidu</a><br>" escapeXml="true"></c:out><br>
escapeXml="false":<c:out value="<a href='https://www.baidu.com'>baidu</a><br>" escapeXml="false"></c:out><br>
- <c:remove>删除
----c:remove----<br>
<c:set var="a" scope="request" value="a"></c:set>
创建:${requestScope.a}<br>
<c:remove var="a" scope="request"></c:remove>
删除:${requestScope.a}<br>
- <c:if>单个判断
----c:if----<br>
<c:if test="${10>2}" var="result" scope="request">真 ${requestScope.result}</c:if><br>
- <c:choose>多个判断
----c:choose----<br>
<c:set var="role" value="学生" scope="request"></c:set><br>
${requestScope.role}<br>
<c:choose>
<c:when test="${requestScope.role == '老师'}">a</c:when>
<c:when test="${requestScope.role == '学生'}">b</c:when>
<c:otherwise>c</c:otherwise>
</c:choose><br>
注意这边的test="这里面不能有空格!!!" 例如:test="10>2 "=false<br>
- <c:forEach>循环
----c:forEach----<br>
<c:forEach begin="1" end="10" step="1" var="i" varStatus="status">
${i},a,${status.index}...
</c:forEach>
<br>
names:${requestScope.names}<br>
<c:forEach items="${requestScope.names}" var="name" >
${name},
</c:forEach><br>
students:${requestScope.students}<br>
<c:forEach items="${requestScope.students}" var="student" >
${student.sname}---${student.sno}
</c:forEach><br>
同样,items不能加空格,否则就报错。例如:items="$ {requestScope.students} " 错的×