1. EL表达式
1.1 介绍
- EL(Expression Lannguage):表达式语言
- 在JSP2.0规范中加入的内容,也是Servlet规范的一部分
- 作用
- 在JSP页面获取数据,让我们的JSP脱离Java代码块和JSP表达式
- 不需要关心是哪个对象,只需要关心名称就行了
- 语法
- 只能从域对象中获取,即四大域对象
1.2 入门案例
<head>
<title>el快速入门</title>
</head>
<body>
<% request.setAttribute("username","zhangsan");%>
${username}
</body>
</html>
1.3 功能
1.3.1 获取数据
- 获取普通类型数据
- 自定义对象类型
- ${数据的名称} ==> 获取到的是对象
- ${数据名称.属性名}
- list集合
- map集合
- ${数据名称.map集合key的名称}
- ${数据名称[“map集合key的名称”]}
<body>
<%--基本数据类型--%>
<%pageContext.setAttribute("num",10);%>
${num}<br/>
<%--自定义对象--%>
<%
Student stu = new Student("张三","23");
pageContext.setAttribute("stu",stu);
%>
${stu}<br/>
${stu.name}
${stu.age}
<%--数组类型--%>
<%
String[] arr = {"hello","world"};
pageContext.setAttribute("arr",arr);
%>
${arr} <br/>
${arr[0]}<br/>
${arr[1]}<br/>
<%--List集合--%>
<%
ArrayList<String> list = new ArrayList<>();
list.add("hello");
list.add("world");
pageContext.setAttribute("list",list);
%>
${list}<br/>
${list[0]}<br/>
${list[1]}<br/>
<%--Map集合--%>
<%
HashMap<String,Student> map = new HashMap<>();
map.put("hm1",new Student("张三","23"));
map.put("hm2",new Student("李四","24"));
pageContext.setAttribute("map",map);
%>
${map}<br/>
${map.hm1}<br/>
${map.hm2}<br/>
</body>
1.3.2 运算符
运算符 |
作用 |
示例 |
结果 |
==或eq |
等于 |
5 = = 5 或 {5 == 5}或 5==5或{5 eq 5} |
true |
!=或ne |
不等于 |
5 ! = 5 或 {5 != 5}或 5!=5或{5 ne 5} |
false |
<或It |
小于 |
3 < 5 或 {3 < 5}或 3<5或{3 It 5} |
true |
> 或gt |
大于 |
3 > 5 或 {3 > 5}或 3>5或{3 gt 5} |
false |
<=或le |
小于等于 |
3 < = 5 或 {3 <= 5}或 3<=5或{3 le 5} |
true |
>=或ge |
大于等于 |
3 > = 5 或 {3 >= 5}或 3>=5或{3 ge 5} |
false |
运算符 |
作用 |
示例 |
结果 |
&&或and |
并且 |
{A&&B}或{A and B} |
true/false |
||或or |
或者 |
A ∥ ∥ B 或 {A\|\|B}或 A∥∥B或{A or B} |
true/false |
!或not |
取反 |
! A 或 {! A}或 !A或{not A} |
true/false |