1.什么是EL?
El是表达式语言,全名为Expression Language 简称EL .
EL能很方便的访问大多数JSp内置的隐含对象,从而简化编程.
2.为什么需要EL?
a. JavaBean在jsp中的局限性
获取JavaBean属性必须实例化
强制类型转换
b. 如果页面编写出现逻辑错误,将会导致代码执行错误,并且JSP页面编译页面时也会产生错误
c. EL可以很简便的进行编程
3.EL的表达式.
${ EL exprission }
${ bean.name } 或 ${ bean['name'] }
${bean.name}实质是调用bean的getName()方法
4.EL的特点:
Ø 自动转换类型
Ø EL得到某个数据时可以自动转换类型
Ø 对于类型的限制更加宽松
Ø 使用简单
Ø 相比较在JSP中嵌入Java代码,EL应用更简单
Ø EL语言中操作对象时,可以非常简单地使用各种算术、关系、逻辑或空值测试运算符,简化操作运算。如果要针对不同情况和条件进行输出不同的信息,根本不再需要采用Java语言编程,就可以轻松实现条件化输出,从而消除了大部分类型转换的需要,同时也省略掉很多将字符串解析成数字的代码,实现了自动类型转换。
5.EL的语法:
以“${”作为开始,以“}”作为结束
直接使用变量名获取值$
${ username }
6.变量属性范围名称
属性范围 | EL中的名称 |
page | pageScope,例如${pageScope.username},表示在page范围内查找username变量,找不到返回Null |
request | requstScope |
session | sessionScope |
application | applicationScope |
7.EL中的运算符:
运算符 | 代表运算 | 运算符 | 代表运算 |
+ | 加(算术) | >、gt | 大于(比较) |
- | 减(算术) | <、lt | 小于(比较) |
* | 乘(算术) | <=、le | 小于等于(比较) |
/、div | 除(算术) | >=、ge | 大于等于(比较) |
%、mod | 取模(算术) | ==、= | 等于(比较) |
&&、and | 与(逻辑) | !=、ne | 不等于(比较) |
||、or | 或(逻辑) | x?y:z | 条件求值 |
!、not | 非(逻辑) | empty | 检查是否为空 |
8.EL自定义函数:
表达式语言允许用户自定义函数。此函数必须采用public类中的 public static方法编写并要映射到TLD标签库文件中。
EL函数的定义语法格式如下所示:
package com.msit.el;
/**
* EL自定义函数
*
* @author admin
*
*/
publicclassELFunction {
/**
* 判断2个数据中的最大值
*
* @param a1
* @param a2
* @return最大值
*/
publicstaticint max(int a1, int a2) {
if (a1 > a2) {
return a1;
}else{
return a2;
}
}
}
9.EL自定义函数的web.xml文件的配置
<!-- JSP配置 -->
<jsp-config>
<!-- 标签引用 -->
<taglib>
<!-- 标签的使用链接 -->
<taglib-uri>/ELFuctions</taglib-uri>
<!-- 实际地址路径 -->
<taglib-location>/WEB-INF/tlds/ELFunctions.tld</taglib-location>
</taglib>
</jsp-config>
10.使用标签库描述文件:
<function>
<name>max</name>
<function-class>com.msit.el.ELFunction</function-class>
<function-signature>intmax(int,int)</function-signature>
</function>
11.引用自定义标签的方式:
<%@ page contentType="text/html;charset=GB2312"%>
<%@ taglib prefix="myfn" uri="/ELFuctions"%>
<html>
<head>
<title>EL函数示范</title>
</head>
<body>
<h2>EL函数示范</h2>
比较25和35,其中较大的值是:${myfn:max(25,35)}
</body>
</html>