EL表达式
1. 概念:
- Expression Language 表达式语言
2. 作用:
- 替换和简化 jsp 页面中Java代码的编写
3. 语法:
- ${表达式}
4. 注意:
- jsp 默认支持el 表达式。如果要忽略el 表达式:
- 设置 jsp 中 page 指令中:isELIgnored = “true” 忽略当前 jsp 页面中所有的 el 表达式
- \ ${表达式}:忽略当前这个 el 表达式
5. 使用
1. 运算
运算符
- 算数运算符:+ - * / (div) %(mod)
- 比较运算符:> < >= <= == !=
- 逻辑运算符:&&(and) ||(or) !(not)
- 空运算符:empty
- 功能:用于判断字符串、集合、数组对象是否为 null 或者 长度是否为0
- ${empty list}:判断字符串、集合、数组对象是否为 null 并且 长度 >0
- ${not empty str}:表示判断字符串、集合、数组对象是否不为 null 并且 长度 > 0
2. 获取值
1.el 表达式只能从域对象中获取值
2. 语法:
- ${域名称.键名}: 从指定域中获取指定键的值
- 域名称:
- pageScope —> pageContext
- requestScope —> request
- sessionScope —> session
- applicationScope —> application (ServletContext)
- 举例:在request 域中存储了name=张三
- 获取:${requestScope.name}
- 域名称:
- ${键名}: 表示依次从最小的域中查找是否有该键对应的值,知道找到为止
- 获取对象、List集合、Map集合的值
- 对象:${域名称.键名.属性名}
- 本质上会去调用对象的 getter 方法
- List 集合:${域名称.键名[索引]}
- Map集合:
- ${域名称.键名.key名称}
- ${域名称.键名.[“key名称”]}
- 对象:${域名称.键名.属性名}
3. 隐式对象:
- el 表达式中有11个隐式对象
- pageContext:
- 获取 jsp 其他八个内置对象
- ${pageContext.request.contextPath}:动态获取虚拟目录
- 获取 jsp 其他八个内置对象