JSTL:比el更强大
需要引入两个jar包:jstl.jar standard.jar
引入tablib(在jsp中)
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
prefix=c是前缀
核心标签库:通用标签库,条件标签库 迭代标签库
1.通用标签库
<c:set>赋值
a. 在某个作用域之中给某个变量赋值
<%--
request.setAttribute("name", "zhangsan");
--%>
<c:set var="name" value="zhangsan" scope="request"/>
${requestScope.name}
b.给某个变量的属性赋值
<c:set target=" ${requestScope.student}" property="password" value="zxs"/>
此处写法不用指定scope
给map对象的属性赋值
<c:set>可以给不存在的变量赋值,就是不存在创建一个然后赋值
但是不能给不存在的对象赋值
c.输出
<c:out value="${requestScope.name}"/>
<c:out value="${requestScope.sname}" default="zzz"/>
如果sname不存在,输出default给定的值
<c:out value='<a href="https://www.baidu.com">百度</a>' escapeXml="false"/>
<c:out value='<a href="https://www.baidu.com">百度</a>' escapeXml="true"/>
escapeXml为true,原封不动地的把<a href="https://www.baidu.com">百度</a>打印出来
为false,只打印百度两个字
<c:remove var="a" scope="request"/> 删除后再显示
选择:
if
单重选择
<c:if test="">
<c:if test="${10>2 }" var="result">
真
</c:if><br>
<c:choose>
<c:when test="${requestScope.nname=='123'}">
丝糕一
</c:when>
<c:when test="${requestScope.name=='zhangsan'}">
hhh
</c:when>
<c:otherwise> 111</c:otherwise>
</c:choose>
循环(迭代标签库):
for(int i=0;i<5;i++)
<c:forEach begin="1" end="4" step="1">
test...
</c:forEach>