EL表达式语言
(1)EL概述
1.1 EL(Expression Language)是一门表达式语言 它对应<%=...%> EL表达式也会被输出
往页面输出内容
1.2 EL的格式
格式:${...}
例如:${1+2}
1.3 关闭EL
如果希望整个jsp忽略EL表达式 需要在page指令中 指定isELIgnored="true"
如果希望忽略某个EL表达式 可以在 EL表达式之前添加"/",例如:/${1+2}
1.4 EL运算符
+加 -减 *乘 /除 %取余 ==等于 !=不等于 <小于 >大于 <=小于等于 >=大于等于 &&并且 !非 ||或者
empty是否为null
${empty “”},可以判断字符串、数据、集合的长度是否为0,为0返回true。empty还可以与not或!一起使用。${not empty “”}
empty: ${empty "" } //true
<%
LIst list=new ArrayList();
pageContext.setAttribute("list",list);
%>
${empty list} //true 集合当中没有内容 集合的长度是0 默认为null 返回true
${not empty list}//false 不为null
1.5 EL不显示null
当EL表达式的值为null,会在页面上显示空白 什么都比显示
(2)El表达式格式 (EL表达式的导航结构)
操作bean的属性 :${person.name} ${person['name']} 对应person.getName();方法
操作List和数组 : ${list[0] } ${arr[0] }
操作Map的值 : ${map.key} ${map['key'] } 对应map.get(Key); 方法
操作bean的属性
使用EL表达式取出bean属性值
操作List集合
使用EL导航取出list集合当中内容
操作Map集合
使用El导航取出map集合当中的值
作业:user-agent 头: 存在map集合当中,并且使用EL表达式输出到页面上
(3)EL内置对象
EL一共11个内置对象,无需创建即可使用 ,这11个内置对象由10个是map类型 最后一个是pageContext对象
pageScope
requestScope
sessionScope
applicationScope
param
paramValues
header
headerValues
initParam
cookie
pageContext
3.1域相关内置对象
pageScope
requestScope
sessionScope
applictionScope
使用EL表达式获取域对象中的值
使用El来访问Javabean对象 EL只做只读操作 所有JavaBean一定要提供get方法 set方法没有要求
全域查找 ${name} 表示依次在pageScope requestScope sessionScope applictionScope 四个域中查找
指定域查找${requestScope.name} 表示在request域中查找
3.2 和参数相关的内置对象
param:
${param.username} -->模拟了request.getParameter("");
获得请求过来的参数
paramValues:
获得请求过来的所有参数 是个数组
${paramValues.name} -->模拟了request.getParameterValues("");
获得每一个请求过来的参数
y:${paramValues.name[0] }
e:${paramValues.name[1] }
s:${paramValues.name[2] }
3.3 和请求头相关的内置对象
header:类型 Map<String,String>类型 用来获取请求头
${header.name}--> 模拟了request.getHeader("name");
获得请求头信息
headerValues:
当一个请求头名称 对应多个值时 使用该对象
3.4 Cookie相关的内置对象 类型Map<String,Cookie> 其中键是cookie的名称 值是cookie对象本身
${Cookie.JSESSIONID.name}
${Cookie.JSESSIONID.value}
获得 name: JSESSIONID value: 72D1A0D8D1A443FEF2BCD6CFBDBD37B4
3.5 和应用初始化参数相关的内置对象
${initParam. } 是Map<String,String> 类型 它对应web.xml 文件当中的<context-param> 参数
${initParam.name} //获得值 对应ServletContext.getInitParaneter("name");
3.6 pageContext对象(重要)
pageContext是PageContext类型
例如 pageContext.getRequest 可以 ${pageContext.request}
${pageContext.request.contextpath} //获得项目名称
${pageContext.session.id} //获得sessionid
${pageContext.request.method} //获得请求的方式
${pagecontext.request.queryString} // 查询地址栏追加的字符串
(4)EL函数库
4.1 什么是EL函数库
El函数库就是定义一些有返回值的静态方法,然后通过EL表达式语言来调用它们
4.2 导入函数库
因为是第三方的东西 ,所以余姚导入导入需要使用tiglib指令
<%@ tablib predix="" uri=""%>