JavaWeb---EL(Expression Language)

来源:互联网 发布:mysql增加primary key 编辑:程序博客网 时间:2024/04/28 03:36

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自定义函数

 *

 * @authoradmin

 *

 */

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>

      比较2535,其中较大的值是:${myfn:max(25,35)}

</body>

</html>

0 0