1.el表达式
语法:${xxxScope.key}
作用:获取四大域的数据
我们原来通过xxx.getAttribute(key)也可以获取到四大域中的数据,为什么还要使用EL表达式,因为EL表达式语法更加简洁。而且后期可以与我们的jstl标签库一起使用。如果EL表达式没有找到对于的key,则返回空字符串 "".
EL表达式属于jsp或者后面讲解thymeleaf的语法
el表达式 还可以省略scope ${key} 那么它会从哪个对象中获取数据。默认从pageContext扫描有没有对于的key,如果有则不继续往下扫描了,如果没有则继续往下扫描request-->session-->application
2.jstl标签库
如何使用jstl标签库:
1.wep工程下引入jstl的jar包
2.在使用jstl的jsp网页上引入改标签库:
--jsp网页的头部引入jstl核心标签库--
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
3.使用
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--jsp网页的头部引入jstl核心标签库--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
//这里保存数据的目标就是为了操作方便。这些数据都是从数据库中查询。
List<User> list=new ArrayList<>();
list.add(new User(1,"张胜男","北京",25,0));
list.add(new User(2,"李四","杭州",35,1));
list.add(new User(3,"王五","上海",15,1));
list.add(new User(4,"赵六","郑州",55,1));
request.setAttribute("users",list);//把集合保存到request对象中了。
%>
<table border="1" width="500">
<tr>
<td>编号</td>
<td>姓名</td>
<td>地址</td>
<td>年龄</td>
<td>性别</td>
</tr>
<!--使用jstl标签库循环遍历request中保存的集合
forEach遍历:
items:表示要遍历的集合或数组
var: 表示遍历集合时,把集合中每个元素的只赋值给该变量
-->
<%--
if: 条件判断
test:表示条件。如果条件成立则if语句块被执行。
--%>
<c:forEach items="${users}" var="u">
<tr>
<td>${u.id}</td>
<td>${u.name}</td>
<td>${u.address}</td>
<td>${u.age}</td>
<c:if test="${u.sex==0}">
<td>男</td>
</c:if>
<c:if test="${u.sex==1}">
<td>女</td>
</c:if>
</tr>
</c:forEach>
</table>
</body>
</html>