1.概述
Expression Language 表达式语言
作用:替换和简化jsp页面中Java代码的编写
语法:${ EL表达式 }
注意:jsp默认支持EL表达式,可以设置不解析表达式
方法一:设置jsp中page指令中的:isELIgonred=”true”,忽略当前jsp页面中的所有EL表达式
方法二:
\${EL表达式}
忽略当前这个EL表达式
2.EL运算符
算术运算符:+ - * /(div) %(mod)
比较运算符:> < >= <= == !=
逻辑运算符:&&(and) ||(or) !(not)
空运算符:empty 用于判断字符串、集合、数组对象是否为null并且长度是否为0
${empty str}
${not empty str}
3.EL获取值
EL表达式只能从域对象中获取值
**语法一:${域名称.键名}**,从指定域中获取指定键的值,如果获取不到则不会显示任何内容(空字符串)
pageScope——->pageContext域
requestScope——>request域
sessionScope——>session
applicationScope——>application(servletContext)
举例:在pageContext中存储,pageContext.setAttribute(“msg”,”hxx”);
获取值,**${pageScope.msg}**
**语法二:${键名}**,表示依次从最小的域中查找是否又该键对应的值,直到找到为止。
获取对象的值,对象的属性来获取,${域名称.键名.属性名},本质上会调用对象的getter方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21public class User {
private Date date;
/*
* 逻辑视图
* */
public String getBirStr(){
if (date!=null){
//格式化日期对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//返回字符串
return sdf.format(date);
}else return null;
}
}
<%--通过对象的属性来获取--%>
<%
User user = new User();
user.setDate(new Date());
request.setAttribute("u",user);
%>
${u.birStr}List集合:${域名称.键名[索引]},越界时不显示任何内容
1
2
3
4
5
6
7
8
9
10
11<%
List list = new ArrayList();
list.add("hxxx");
list.add(user);
request.setAttribute("l",list);
%>
${requestScope.l}<br>
${l[0]}<br>
<%--越界什么都不显示--%>
${l[10]}<br>
${l[1].date}<br>Map:**${域名称.键名[“key名称”]} 或 ${域名称.键名.key名称}**
1
2
3${requestScope.m}<br>
${m.name}<br>
${m["name"]}
4.隐式对象
EL表达式中有11个隐式对象
pageContext
- 获取jsp其他八个内置对象
1
2<%--在jsp中动态获取虚拟目录--%>
${pageContext.request.contextPath}