EL表达式概念:
1 Expression Language 表达式语言
2 作用:替换和简化JSP页面中java代码的编写
3 语法:$ {表达式}
4 注意:如果在jsp标签头上配置了 isELIgnored=“true”(默认为false)那么该页面所有的EL表达式将不起作用,原样输出。
5 可以单独的忽略EL表达式:在某个EL表达式前加上 \ 例如:
$ {3>4} 输出false
${3>4} 那么这个EL表达式将忽略,输入 ${3>4}
6 功能:1 运算
* 运算符:
1 算数运算符:+ - * /(div)–除号 %(mod)
2 比较运算符: > < >= <= == !=
3 逻辑运算符:&&(and) ||(or) !(not)
4 空运算符:empty :用于判断字符串,集合,数组对象是否为null并且长度是否为0;例如: ${empty list} 意思:如果要想让这个EL表达式的值为true,要么让这个list集合的对象为null,要么让这个list集合的长度为0
${not empty str}:表示判断字符串 集合 数组对象是否不为null 并且 长度>0
2 获取值:
1 el表达式只能从域对象中获取值
2 语法:
1 ${域名.键名}:从指定域中获取指定的键值
* 域名称:
* 1 pageScope ---->pageContext
* 2 requestScope —>request
* 3 sessionScope —>session
* 4 applicationScope ---->appication(ServletContext)
例如:在request域中存储了name=张三
获取:${requestScope.name}
2 第二种查找的方法:
${键名}:表示一次从最小的域中查找是否有该键对应的值,直到找到为止。
3 获取对象 . List集合,Map集合的值
1 对象:
域
名
称
.
键
名
.
属
性
名
∗
本
质
上
会
去
调
用
对
象
的
g
e
t
t
e
r
方
法
。
2
获
取
L
i
s
t
集
合
:
{域名称.键名.属性名} * 本质上会去调用对象的getter方法。 2 获取List集合:
域名称.键名.属性名∗本质上会去调用对象的getter方法。2获取List集合: {域名称.键值名[索引]}
3 Map集合:
${域名称.键名.key名称}
${域名称.键名[“key名称”]}
4 隐式对象:
el表达式中有11个隐式对象
pageContext:
获取jsp其他八个内置对象
* ${pageContext.request.ContextPath}:动态获取虚拟目录。用于路径的编写
EL标签是做什么的?
${sessionScope.user.sex}等价于JAVA代码:User user=(User)session.getAttribute(“user”); String sex=user.getSex();说白了,EL标签是为了在JSP页面中避免写java代码,使用EL标签可以方便的取出相应的设置在javaBean中的属性值。
EL标签中提供了. 和 []这两种运算符来取数据,那么这两种运算符该放在怎样的场合使用呢?
① ${sessionScope.user.sex}等价于 ${sessionScope.user[“sex”]}。但有时非[]不可,比如当你设置的属性是这样子的:session.setAttribute(“user.sex”,“男”);那么这个时候就不能用.和-了,必须使用[] ${sessionScope.user[“user.sex”]}
②当设置的属性值存在动态变化的时候,就只能用[] 比如:
session.setAttribute(“user1”,“User1”);
session.setAttribute(“user2”,“User2”);
pageContext.setAttribute(“var”,“user1”);
${sessionScope[pageContext.var].username};