EL简介
EL表达式核心点是将对象存储到某个域中,在需要的页面中直接使用表达式来使用,从来减少获取及强制类型转换的操作。
语法:&{}
<%
//存储
session.setAttribute("name","小黑");
//存储对象
Emp emp = new Emp();
emp.setEname("阿狸");
emp.setSex("女");
session.setAttribute("emp",emp);
%>
name:${name}
<hr>
ename:${emp.ename}
sex:${emp.sex}
注意:el表达式存储对象后,可以直接通过对象.属性获取值(实际是通过类中的setter和getter方法获取的)。
el表达式中还有很多运算符和方法等等,这里我们只是了解一下。
EL中还有很多逻辑运算符和对象。这里就不作详细的解读了。
这里再说一下与EL表达式一起使用的JSTL标签库。
JSTL标签库:
介绍:
- JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的。使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码
- JSTL中也提供了用于做逻辑判断的功能,可以结合EL表达式使用
想要使用JSTL标签库就要引入jar包。
步骤:
1.关联jar包(JSTL的标签库、JSTL的规范)
2.引入标准库路径
引入方式:<!%--prefix:别名 uri:引入的标准库路径--%>
例如:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
使用语法:
<c:forEach begin = "开始数" end ="结束数" var=">
看一下使用JSTL如何进行遍历
forEach标签。
<%--1~5循环--%>
<c:forEach begin="1" end="5" var="index">
${index}
</c:forEach>
<%--遍历数组
items:指定要遍历的对象
var:每次遍历对应的对象
begin:开始值
end:结束值
varStatus:下标对象
--%>
<%--遍历数组-->
<%
int[] arr = {1,2,3,4}
session.setAttribute("arr",arr);
%>
<c:forEach items="${strArr}" var="str" varStatus="indexObj">
${str},${indexObj.index}
</c:forEach>
<%
List<Emp> empList = new ArrayList<>();
empList.add(new Emp(1,"李白"));
empList.add(new Emp(2,"杜甫"));
empList.add(new Emp(3,"苏轼"));
session.setAttribute("empList",empList);
%>
<!--
for(int i=0;i<empList.size();i++){empList.get(i);}
for(Emp emp : empList){}-->
<c:forEach items="${empList}" var="emp">
姓名:${emp.ename},序号:${emp.eno}<br>
</c:forEach>
<hr>
<%
// 创建Map集合
Map map = new HashMap<>();
map.put("法师","安其拉");
map.put("射手","后羿");
map.put("战士","亚瑟");
session.setAttribute("map",map);
%>
<%--遍历Map集合--%>
<c:forEach items="${map}" var="map">
${map.key},${map.value}
</c:forEach>