一、EL表达式
EL表达式语言,Java统一表达式语言(Unified Expresssion Language,简称JUEL)是一种特殊用途的编程语言。
作用:
- 获取数据
- 执行运算
- 获取web开发的常用对象
使用:${}
注意:EL表达式只有在Servlet2.4/JSP2.0版本下才会生效,如果在别的版本使用需要在JSP头文件加上<%@ page isELIgnored=“false”%>。
二、JSP标签
案例1:页面跳转
项目结构:
效果:
案例2:页面跳转并携带参数
修改案例1代码如下:
效果:
三、JSTL标签
JSTL标签库的使用就是为了弥补HTML标签的不足;他自定义许多标签,可以供我们使用,标签的功能和Java代码一样。
可以参考菜鸟教程:官网
核心标签(掌握部分):
格式化标签:了解即可
SQL标签:了解即可
XML标签:了解即可
JSTL标签库使用步骤:
- 引入对应的taglib;
- 使用其中的方法;
- 注意:在Tomcat也需要引入jstl的包,否则会报错: JSTL解析错误
简单案例1:
编写coreIf.jsp代码,实现用户名判断:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page isELIgnored="false" %>
<%--引入JSTL核心标签库,我们才能使用JSTL标签--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h2>if测试</h2>
<hr>
<%--使用El表达式获取表单中的数据--%>
<form action="coreIf.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="${isAdmin}"></c:out>
</body>
</html>
效果:
简单案例2:
编写coreChoose.jsp,实现成绩判断:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page isELIgnored="false" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%--定义一个变量score,值为85--%>
<c:set var="score" value="85"></c:set>
<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>
效果:
简单案例3:
编写coreForEach.jsp,实现遍历功能:
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page isELIgnored="false" %>
<%--引入JSTL核心标签库,我们才能使用JSTL标签--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<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);
%>
<c:forEach var="people" items="${list}">
<c:out value="${people}"/><br>
</c:forEach>
<hr>
<%--
var , 每一次便利出来的变量
items,遍历的对象
begin,哪里开始
end,到哪里
step,步长
--%>
<c:forEach var="people" items="${list}" begin="1" end="3" step="2">
<c:out value="${people}"/><br>
</c:forEach>
</body>
</html>
效果: