EL表達式:${ }
- 獲取數據
- 執行運算
- 獲取web開發的常用對象
在pom.xml 文件中導入JSP、JSTL相關依賴:
<!--JSP依賴--><!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api --><dependency><groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>2.3.3</version></dependency><!--JSTL 表達式依賴--><dependency><groupId>javax.servlet.jsp.jstl</groupId><artifactId>jstl-api</artifactId><version>1.2</version></dependency><!--JSTL 需要 standard 標準庫--><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1.1.2</version></dependency>
使用JSP? 標簽 常用實現頁面跳轉:
創建一個 jsptag . jsp 文件:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body><%--JSP表達式常用標簽--%> <%-- http://localhost:8080/jsptag.jsp?name=xiaoxu&age=18--%><%--跳轉頁面到jsp2.jsp--%><%-- 頁面跳轉攜帶可參數--%><jsp:forward page="jsp2.jsp"><jsp:param name="name" value="xiaoxu"/><jsp:param name="age" value="18"/></jsp:forward></body> </html>
jsp2.jsp 文件:
<%@ page contentType="text/html;charset=UTF-8" language="java" %><%--自定義錯誤頁面--%> <%@ page errorPage="error/500.jsp" %><html> <head><title>Title</title> </head> <body><h1>JSP2的頁面~</h1> <%--取參數--%>名字:<%=request.getParameter("name")%>年齡:<%=request.getParameter("age")%></body> </html>
運行結果:
JSTL表達式
JSTL是一個JSP的標準標簽庫,是一個JSP的標簽集合。它封裝了JSP的通用核心功能。
JSTL標簽庫的使用就是為了彌補HTML標簽的不足;它自定義了許多標簽,可以供我們使用,標簽的功能和Java代碼一樣。
包含:格式化標簽、SQL標簽、XML標簽、核心標簽(重點掌握)
核心標簽:
JSTL標簽庫使用步驟
- 引入對應的taglib
- 使用其中的方法
- 注意在Tomcat 也需要引入 jstl 和 standard 的包,否則會報錯:JSTL解析錯誤
<c:if> 使用案例
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%--引入JSTL核心標簽庫,我們才能使用JSTL標簽 --%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head><title>Title</title> </head> <body><h3>if測試</h3><hr> <form action="coreif.jsp" method="get"><%--EL表達式獲取表單中的數據${param.參數名}--%><input type="text" name="username" value="${param.username}"><input type="submit" value="登錄"> </form><%--判斷如果登錄提交的用戶是admin 管理員,就登錄成功 <% if (request.getParameter("username").equals("admin")){out.print("登錄成功"); } %>--%> <c:if test="${param.username == 'admin'}" var="isAdmin" ><c:out value="管理員歡迎你~"/> </c:if></body> </html>
運行結果:
<c: set>? <c: choose> 使用:
<%@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> <%--定義一個score變量,值為85--%> <c:set var="score" value="85"/><c:choose><c:when test="${score>=90}">你的成績為優秀</c:when><c:when test="${score>=80}">你的成績為良好</c:when><c:when test="${score>=70}">你的成績為一般</c:when><c:when test="${score>=60}">你的成績為合格</c:when> </c:choose> </body> </html>
運行結果:
<c:forEach> 使用:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page import="java.util.ArrayList" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body> <%ArrayList<String> people = new ArrayList<>();people.add(0,"張三");people.add(1,"李四");people.add(2,"王五");people.add(3,"趙六");people.add(4,"田七");request.setAttribute("list",people); %><%-- var:每一次遍歷出來的變量 items:要遍歷的對象 --%> <c:forEach var="people" items="${list}"><c:out value="${people}"/><br> </c:forEach><hr><%-- begin:開始的下標 end:結束的下標 stap:步長 --%> <c:forEach var="people" items="${list}" begin="1" end="3" step="2"><c:out value="${people}"/><br> </c:forEach></body> </html>
運行結果: