EL表达式及其定义和使用


1.简介

     EL(Expression Language)表达式语言是在JSP2.0版本中引入的新特性,它用于JSP文件中的数据访问。

     这种表达式语言能简化JSP文件中数据访问的代码,可用来代替传统的基于”<%=”和”%>”形式的Java表达式,以及部分基于”<%”heels”%>”形式的Java程序片段。
     例如:
<%
        ShoppingCartcart =(ShoppingCart)session.getAttribute(“cart”);
            if(cart != null){
%>
<%=cart.getTotal()%>  
<%} %>
     上述代码等价于:
${sessionScope.cart.total}

2.基本语法

     EL表达式的基本形势为:${var},所有的表达式都以”${”符号开头,以”}”符号结尾。如果在JSP文件的模版文件中使用EL表达式,那么表达式的值会输出到网页上。
     例如以下Java表达式和El表达式的作用相同:
     Java表达式:
<%=request.getParameter(“username”)%>
     EL表达式:
${param.username}
     比较以上两种表达式的形式,都用于输出请求参数username,可以看出,EL表达式使得JSP文件的穿件人员能用更加简单的语法来访问数据。
     EL表达式和Java表达式一样,既可以直接插入到JSP文件的模版文件中,也可以作为JSP标签的属性的值:
<jsp:useBeanid=”myBean”   scope=”page”   class=”defaultPackage.CounterBean”/>
<jsp:setProerptyname=”myBean”property=”count”value=”${myBean.count+1}”/>
Current countvalue is :${myBean.count}

3.访问对象的属性及数组的元素

     EL表达式语言可以使用点号运算符”.”来访问对象的属性,例如表达式${customer.name}表示customer对象的name属性。
     EL表达式语言也可以使用方括号运算符”[]”来访问对象的属性,例如表达式${customer[“name”]}和${customer.name}是等价的。
     方括号运算符”[]”还可以用来访问数组中的元素,例如${sustomers[0]}表示访问customers数组中的第一个元素
               EL语言的运算符
EL表达式及其定义和使用
     EL语言提供了一个用于测试对象是否为空的特殊运算符“empty“,其语法形式为${empty var},它能判断var变量(确切地说,应该是命名变量)是否为空。在以下情况下empty运算符返回true:
·  var变量不存在,即没有定义。
·  var变量的值为null。
·  var变量引用集合(Set、List和Map)类型的对象,并且在i集合对象中不包含任何元素。
     empty运算符可以与”!”运算符一起使用。

4.隐含对象

     EL语言定义了11个隐含对象,他们都是java.util.Map类型

           EL表达式语言中的隐含对象
EL表达式及其定义和使用

5.命名变量

     EL表达式中的变量称为命名变量,它不是JSP文件中的局部变量或实例变量,而是存放在特定该范围内的属性,命名变量的名字和属性名字对应。例如${username}等价于以下代码:
<%
String username=(String)pageContext.finAttribute(“username”);
   if(username != null){
%>
<%=username%>
<%} %>
     假如在Person类中并不存在username属性,而是提供了public类型的getUsername()方法:
public String getUsername(){
   return this.lastName + “.” + this.firstName;
}
     就可以通过${person.username}表达式获得person.getUsername()方法的返回值。
6.总结:
     EL表达式的使用能够简化页面内容,提高代码的复用率,其可以完成类似于自定义JSP标签,CSS样式。假如有这样的一种情况,需要在页面中使用内联样式,而样式的内容又很多,这样页面中不仅有标签还有大量的内联样式,不免有些混乱,使用上面例子中的自定义EL就可以解决此类问题。
EL=Expression  Language=Easy Language(简化语言)
本站所有文章均来自互联网,如有侵权,请联系站长删除。极客文库 » EL表达式及其定义和使用
分享到:
赞(0)

评论抢沙发

评论前必须登录!