这种表达式措辞能简化JSP文件中数据访问的代码,可用来代替传统的基于\"大众<%=\"大众和\公众%>\"大众形式的Java表达式,以及部分基于\公众<%\"大众heels\"大众%>\公众形式的Java程序片段。

例如:

<% ShoppingCart cart =(ShoppingCart)session.getAttribute(“cart”); if(cart != null){%><%=cart.getTotal()%> <%} %>

上述代码等价于:

jsp页面中的er表达式EL表达式及其界说和应用 CSS

${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措辞供应了一个用于测试工具是否为空的分外运算符“empty“,其语法形式为${empty var},它能判断var变量(确切地说,该当是命名变量)是否为空。
在以下情形下empty运算符返回true:

· var变量不存在,即没有定义。

· var变量的值为null。

· var变量引用凑集(Set、List和Map)类型的工具,并且在i凑集工具中不包含任何元素。

empty运算符可以与”!”运算符一起利用。

4.隐含工具 EL措辞定义了11个隐含工具,他们都是java.util.Map类型

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(简化措辞)