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>
运行结果: