JSTL标签库
- EL表达式主要是为了替换jsp中的表达式脚本,而标签库则是为了替换代码脚本,这样使得整个jsp页面更加简洁
使用步骤
-
先导taglib的jar包
-
在jsp标签库中使用taglib指令引入标签库
-
在tomcat的lib目录也需要引入jstl的包,否则会报错,JSTL解析错误(tomcat9)
核心库使用
<c:set/ >
- 作用:可以往域中保存数据
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
保存之前 ${requestScope.abc} <br>
<%--
scope: 保存在哪个域 page代表pageContext域(默认值)
var 设置key是多少
value 设置值
--%>
<c:set scope="request" var="abc" value="abcValue"></c:set>
保存之后 ${requestScope.abc} <br>
</body>
</html>
<c:if/ >
- 作用:做判断
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%--
test 就是判断的条件 (使用EL表达式输出)
--%>
<c:if test="${12=12}">
<h1> 12等于12 </h1>
</c:if>
</body>
</html>
小扩展
<body>
<form action="index.jsp" method="get">
<input type="text" name="username" value="${param.username}">
<input type="submit" value="登录">
</form>
<c:if test="${param.username=='admin'}" var="isAdmin">
<c:out value="管理员欢迎您"></c:out>
</c:if>
<c:out value="${idAdmin}"></c:out>
</body>
<c:choose > <c:when > <c:otherwise >
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
request.setAttribute("height",178);
%>
<%--
<c:choose> 开始判断
注意:按顺序判断
when 表示每一种情况判断
otherwise 都不符合 就走这里
注意 when标签的父标签必须是choose标签
--%>
<c:choose>
<c:when test="${height>190}"> 高得很 </c:when>
<c:when test="${height>170}"> 还行 </c:when>
<c:otherwise> 都不符合
<c:choose>
<c:when test="${height>150}">大于150</c:when>
<c:when test="${height>140}">大于140</c:when>
<c:otherwise> 其他的情况 </c:otherwise>
</c:choose>
</c:otherwise>
</c:choose>
</body>
</html>