EL表达式
1.概念:Expression Language 表达式语言
2.作用:简化和替换jsp页面java代码的编写
3.语法:${表达式},如${3>4}返回一个逻辑值
4.注意:jsp默认支持EL表达式的,表达式原样展示。
jsp页面停用EL表达式
1.把isELIgnored改成ture,该页面所有的EL表达式都会原样输出。
2.原样输出单个El表达式的话,在EL表达式前面加\即可,如\${3>4}。
EL表达式使用方式:
## 运算
1.算数运算符:+,-,*,/(div),%(mod)
2.比较运算符:<,>,=,<=,>=,!=,==
3.逻辑运算符: &&(and),||(or),!(not)
4.空运算符:empty
判断字符串,集合,数组的对象是否为null并且长度是否为0
例:${3 + 4},${3 / 4},${3 div 4},${3%4},${3 mod 4},${3==4},${3 >4 && 4>5},${3 >4 and 4>5},
## 获取值
1.el表达式只能从域对象中获取值
2.语法:
1.${域名称.键名}:从指定域中获取对应键的值
域名称:
1.pageScope指当前页面如果把变量放到pageContext里,就说明它的作用域是page,它的有效范围只在当前jsp页面里。
2.requestScope指从http请求到服务器处理结束,返回响应的整个过程。在这个过程中使用forward方式跳转多个jsp。在这些页面里你都可以使用这个变量。
3.SessionScope 有效范围当前会话,从浏览器打开到浏览器关闭这个过程。
4.applicationScope的范围在服务器一开始执行服务,到服务器关闭为止。它的范围最大,生存周期最长。
举例:在request域中存储了name=”zhangsan”
,或者name值得EL表达式为:${requestScope.name}
,如果没有拿到数据,则显示空字符串。不会显示null
2.${键名},省略域名称,依次从最好的域中去查找,是否存在对应的键名,直到找到为止。
获取对象、List集合、Map集合的值
1.获取对象的值:
${域名称.键名.属性名}
本质上会去调用对象的getter方法
2. List集合:${域名称.键名[索引]}
例:
List list = new ArrayList();
List.add(“aaa”);
List.add(“bbb”);
Request.setAttribute(“list”,list);//添加list集合到Request域中
${list}
${list[0]}
${list[1]}
${list[10]} //下标越界,不会报错,显示一个空的字符串
-
Map集合:${域名称.键名.key名称}
例:Map map = new Hashmap(); map.put(“sname”,李四“”); map.put(“gender”,“男”); request.setAttribute(“map”,map); ${map} ${map.gender} ${map[“gender”]}
隐式对象
El表达式中有11个隐式对象
PageContext获取jsp其他八个内置对象
${pageContext.request}
Jsp页面动态获取虚拟目录:
${pageContext.request.contextPath}