1.定义
灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法。它是一种简单的语言,基于可用的命名空间(PageContext 属性)、嵌套属性和对集合、操作符(算术型、关系型和逻辑型)的访问符、映射到 Java 类中静态方法的可扩展函数以及一组隐式对象。EL 提供了在 JSP 脚本编制元素范围外使用运行时表达式的功能。脚本编制元素是指页面中能够用于在 JSP 文件中嵌入 Java 代码的元素。它们通常用于对象操作以及执行那些影响所生成内容的计算。JSP 2.0 将 EL 表达式添加为一种脚本编制元素。
以前: <%=request.getParameter("name")%>
现在:${param.name}(注意表达式部分不需要加引号,那么页面将显示一个空格而不是null)
2."." 和 "[]"
一般:${param.name} = ${param["name"]}
但是:当要存取的属性名称中包含有一些特殊字符如 "." 或 "-" 等非字母或数字的符号 或者 在使用动态取值时,就一定要使用 "[]" 运算符。
3.内置对象
(1)与范围有关的内置对象
pageScope、requestScope、sessionScope、applicationScope
(2)与输入有关的内置对象
param 和 paramValues 用来获取表单中提交的信息。前者返回 String 类型数据,后者返回 String[] 类型的数据。如 ${paramValues.name}。
(3)其他隐含对象
Cookie
header 如:${header["UserAgent"]} 获取浏览器的版本信息
headerValues
initParam 如:${initParam.DBDriver} 获取web.xml中配置的相关参数
pageContext 如:${pageContext.request.remoteAddr} 获取用户的IP地址
4.取值范围
pageScope=>requestScope=>sessionScope=>applicationScope=>null
5.自动转换类型
以前:
<%
String age = request.getParameter("age");
int agei = Integer.parseInt(age);
out.println(age+10);
%>
现在:
${user.age+10}
6.运算符
(1)+、-(二元)、*、/、div、%、mod、-(一元)
(2)and、&&、or、||、!、not
(3)==、eq、!=、ne、、gt、<=、le、>=、ge
(4)${empty null} ${empty ""}
(5)A ?B :C
注意:
通过获得的参数进行比较判断时,要这样比较:${param.name1 == param.name2}