1.概念:Expression Language表达式语言
2.作用:替换和简化jsp页面中java代码的编写
3.语法:${表达式}
4.注意:jsp默认支持el表达式,如果想忽略el表达式:
1.配置jsp中page指令:isElIgnore = "true"忽略当前jsp页面的所有el表达式
2.\${表达式}
:忽略当前这个El表达式
5.使用:
1.运算
1.算术运算符:+ - * 、 %
2.比较运算符:> < = >= <= !=
3.逻辑运算符:&& || !
4.空运算符:empty
${empty list}
:判断字符串,集合,数组对象是否为null并且长度是否为0
${not empty str}
:判断字符串,集合,数组对象是否不为null并且长度大于0
2.获取值
1.el表达式只能从域对象中获取值
2.语法:
1.${域名称.键名}
:从指定域中获取指定键的值
域名称:
1.pageScope-------->pageContext
2.requestScope ---->request
3.sessionScope----->sesssion
4.applicationScope->application(ServletContext)
举例:在request域中存储了name=张三
获取:${requestScope.name}
2.${键名}
:依次从最小的域中查找是否有该键对应的值,直到找到为止
3.获取值为对象,list集合,Map集合的值
1.对象:${域名称.键名称.属性名}
:本质上会去调用getter
方法
2.list集合:${域名称.键名[索引]}
3.Map集合:${域名称.键名}
和${域名称["key名称"]}
3.隐式对象:el表达式中共有11个隐式对象
pageContext:获取jsp其他八个内置对象
${pageContext.request.contextPath()}
:获取虚拟目录
运算:
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>算术运算符</h3>
${3+4}<br>
${3/4}<br>
${3 div 4}<br>
${3%4}<br>
${3 mod 4}<br>
<h3>比较运算符</h3>
${3==4}<br>
<h3>逻辑运算符</h3>
${3>4 && 4>5}
<h3>空运算符</h3>
<%
String str = "abc";
request.setAttribute("str",str);
List list = new ArrayList();
request.setAttribute("list",list);
%>
${not empty str}
</body>
</html>
从指定域中获取指定键的值:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
//在域中存储数据
request.setAttribute("name","张三");
session.setAttribute("name","李四");
session.setAttribute("age","23");
%>
<h3>获取值1</h3>
${requestScope.name}
${sessionScope.age}
<h3>获取值2</h3>
${name}
${sessionScope.name}
</body>
</html>
获取值为对象,list集合,Map集合的值:
<%@ page import="domain.User" %>
<%@ page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
User user = new User();
user.setName("张三");
user.setAge(23);
user.setBirthday(new Date());
request.setAttribute("u",user);
List list = new ArrayList();
list.add("aaa");
list.add("bbb");
list.add(user);
request.setAttribute("list",list);
Map map = new HashMap();
map.put("sname","蒋辉");
map.put("gender","男");
map.put("user",user);
request.setAttribute("map",map);
%>
<h3>el获取对象的值</h3>
${requestScope.u}<br>
<%--通过对象的属性来获取--%>
${requestScope.u.name}<br>
${u.age}<br>
${u.birthday.month}<br>
${u.bitStr}<br>
<h3>el获取list集合的值</h3>
${list}<br>
${list[0]}<br>
${list[1]}<br>
${list[2].name}
<h3>获取map集合的值</h3>
${map}<br>
${map.gender}<br>
${map["gender"]}<br>
${map.user.name}<br>
</body>
</html>