一、EL表达式简介
表现方式:${表达式}
作用:通过EL表达式,节省大量的JSP脚本代码
EL表达式只能读,不能写!!!
二、EL表达式的常用操作
①对域对象属性值进行读操作
②对域数据进行简单运算
四则运算
关系运算
逻辑运算
③对域数据进行逻辑-非空运算
判断为空 ${empty 对象}
如果对象为空,true,否则返回false
判断非空 ${not empty 对象}
如果对象不为空 true,否则返回false
判断标准:
①如果对象为null,判断为空
②如果字符串为空字符串,判断为空
③如果数组或者集合中没有元素,判断为空
上下两句代码相同,效果相同
<%=pageContext.findAttribute("str2")==null?"":pageContext.findAttribute("str2")%>
${str2}
Map获取:
获取某个value值(方式一):${map.a1} 简化形式,不建议常用。
方式一不能适用于特殊key,例如:001,*/#
获取某个value值(方式二):${map["a1"]} 不论key是什么,都可以取值
JavaBean获取:同map
获取属性值,调用的是对应的getXxx方法。 如 person.getAge()
EL表达式中写的属性名,必须和getXxx方法相对应 ${person.age}
本质:
①EL表达式输出,会调用对应对象的toString方法
②EL表达式,使用自定义对象时,EL表达式中的属性,其实就是自定义对象中的getXxx方法
三、EL表达式的常用三个对象
param : 接收参数的
例如:request.getParameter(“username”);
${param.username}
cookie : 获取cookie对象
例如:request.getCookies();
${cookie}
例如:想要获取 cookie名为 pwd的 cookie对象
${cookie.pwd}
例如:想要获取 cookie名为 pwd的 cookie对象的value值
Cookie对象.getValue()
${cookie.pwd.value}
pageContext : pageContext对象 可以获取其他的域对象
例如:想要动态获取当前的项目名
Request.getContextPath();
${pageContext.request.contextPath}