`

EL表达式语言

阅读更多
基本语法  

一、EL简介  
   1.语法结构  
     ${expression}  
   2.[]与.运算符  
     EL 提供.和[]两种运算符来存取数据。  
     当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 []。例如:  
         ${user.My-Name}应当改为${user["My-Name"] }  
     如果要动态取值时,就可以用[]来做,而.无法做到动态取值。例如:  
         ${sessionScope.user[data]}中data 是一个变量  
   3.变量  
     EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。  
     因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。  
     假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。  
     属性范围在EL中的名称  
         Page          PageScope  
         Request          RequestScope  
         Session          SessionScope  
         Application      ApplicationScope  
         
二、EL隐含对象  
   1.与范围有关的隐含对象  
   与范围有关的EL 隐含对象包含以下四个:pageScope、requestScope、sessionScope 和applicationScope;  
   它们基本上就和JSP的pageContext、request、session和application一样;  
   在EL中,这四个隐含对象只能用来取得范围属性值,即getAttribute(String name),却不能取得其他相关信息。  
   
   例如:我们要取得session中储存一个属性username的值,可以利用下列方法:  
     session.getAttribute("username") 取得username的值,  
   在EL中则使用下列方法  
     ${sessionScope.username}  

   2.与输入有关的隐含对象  
   与输入有关的隐含对象有两个:param和paramValues,它们是EL中比较特别的隐含对象。  
   
   例如我们要取得用户的请求参数时,可以利用下列方法:  
     request.getParameter(String name)  
     request.getParameterValues(String name)  
   在EL中则可以使用param和paramValues两者来取得数据。  
     ${param.name}  
     ${paramValues.name}  

   3.其他隐含对象  
   
   cookie  
   JSTL并没有提供设定cookie的动作,  
   例:要取得cookie中有一个设定名称为userCountry的值,可以使用${cookie.userCountry}来取得它。  

   header和headerValues  
   header 储存用户浏览器和服务端用来沟通的数据  
   例:要取得用户浏览器的版本,可以使用${header["User-Agent"]}。  
   另外在鲜少机会下,有可能同一标头名称拥有不同的值,此时必须改为使用headerValues 来取得这些值。  

   initParam  
   initParam取得设定web站点的环境参数(Context)  
   例:一般的方法String userid = (String)application.getInitParameter("userid");  
     可以使用 ${initParam.userid}来取得名称为userid  

   pageContext  
   pageContext取得其他有关用户要求或页面的详细信息。  
     ${pageContext.request.queryString}          取得请求的参数字符串  
     ${pageContext.request.requestURL}          取得请求的URL,但不包括请求之参数字符串  
     ${pageContext.request.contextPath}          服务的web application 的名称  
     ${pageContext.request.method}            取得HTTP 的方法(GET、POST)  
     ${pageContext.request.protocol}          取得使用的协议(HTTP/1.1、HTTP/1.0)  
     ${pageContext.request.remoteUser}          取得用户名称  
     ${pageContext.request.remoteAddr }          取得用户的IP 地址  
     ${pageContext.session.new}              判断session 是否为新的  
     ${pageContext.session.id}                取得session 的ID  
     ${pageContext.servletContext.serverInfo}    取得主机端的服务信息  

三、EL运算符  
   1.算术运算符有五个:+、-、*或$、/或div、%或mod  
   2.关系运算符有六个:==或eq、!=或ne、<或lt、>或gt、<=或le、>=或ge  
   3.逻辑运算符有三个:&&或and、||或or、!或not  
   4.其它运算符有三个:Empty运算符、条件运算符、()运算符  
     例:${empty param.name}、${A?B:C}、${A*(B+C)}  
   
四、EL函数(functions)。  
   语法:ns:function( arg1, arg2, arg3 …. argN)  
   其中ns为前置名称(prefix),它必须和taglib 指令的前置名称一置  

EL语言是JSTL输出(输入)一个JAVA表达式的表示形式。  
在JSTL中,EL语言只能在属性值中使用。EL语言只能通过建立表达式${exp1}来进行调用。在属性值中使用表达式有三种方式。  

1、 value属性包含一个表达式  
<some:tag value="${expr}"/>  
在这种情况下,表达式值被计算出来并根据类型转换规则赋值给value属性。比如:<c:out value="${username}" />中的${username}就是一个EL,它相当于JSP语句<%=request.getAttribute(“username”)%>或<%=session.getAttribute(“username”)%>  

2、 value属性包含一个或多个属性,这些属性被文本分割或围绕  
<some:tag value="some${expr}${expr}text${expr}"/>  
在这种情况下,表达式从左到右进行计算,并将结果转换为字符串型(根据类型转换规则),并将结果赋值给value属性  

3、 value属性仅仅包含文本  
<some:tag value="sometext"/>  
在这种情况下,字符串型属性value将根据类型转换规则转换为标签所希望的类型。  

EL语言的操作符  
取得某个对象或集合中的属性值  
为了获得集合中的属性,EL支持以下两种操作  
1. 使用.操作符来获得有名字的属性。例如表达式${user.username}表明对象user的username属性  
2. 使用[]操作符来获得有名字或按数字排列的属性。  
表达式${user["username"]}和表达式${user. username }含义相同  
表达式${row[0]} 表明row集合的第一个条目。  
在这里user是一个类的对象,它的属性username必须符合标准JavaBean的规范,即必须为username属性定义相应的getter、setter方法。  

Empty操作符(空值检查)  

使用empty操作符来决定对象、集合或字符串变量是否为空或null。例如:  
${empty param.username}  
如果request的参数列表中的username值为null,则表达式的值为true。 EL也可以直接使用比较操作符与null进行比较。如${param.firstname == null}。  
比较操作符 操作符 描述  
==或eq 相等检查  
!=或ne 不等检查  
<或lt 小于检查  
>或gt 大于检查  
<=或le 小于等于检查  
>=或ge 大于等于检查  

数字运算符与逻辑运算符均与JAVA语言相同,不再列表。  

1 EL表达式用${}表示,可用在所有的HTML和JSP标签中 作用是代替JSP页面中复杂的JAVA代码.  

2 EL表达式可操作常量 变量 和隐式对象. 最常用的 隐式对象有${param}和${paramValues}. ${param}表示返回请求参数中单个字符串的值. ${paramValues}表示返回请求参数的一组值.pageScope表示页面范围的变量.requestScope表示请求对象的变量.sessionScope表示会话范围内的变量.applicationScope表示应用范围的变量.  

3 <%@ page isELIgnored="true"%> 表示是否禁用EL语言,TRUE表示禁止.FALSE表示不禁止.JSP2.0中默认的启用EL语言.  

4 EL语言可显示 逻辑表达式如${true and false}结果是false 关系表达式如${5>6} 结果是false 算术表达式如 ${5+5} 结果是10  

5 EL中的变量搜索范围是:page request session application 点运算符(.)和"[ ]"都是表示获取变量的值.区别是[ ]可以显示非词类的变量  

它不是客户端的一种语言,而是用java解析出来的,你想要实现那个就必须用脚本了.

 

分享到:
评论

相关推荐

    EL表达式语言 仅作为字典参考用

    ### EL表达式语言详解 #### 一、引言 EL表达式语言,即Expression Language,是一种简化了在JSP页面中获取对象属性的过程的语言。它主要用于处理数据模型,并且能够直接从模型中读取属性值,无需编写额外的Java...

    EL表达式语言(EL语法、EL隐含对象、EL函数)

    ### EL表达式语言详解 #### 一、EL表达式语言简介 **EL**(Expression Language)是一种专门为简化JSP页面中的数据访问而设计的语言。它的灵感来源于JavaScript,具有类似JavaScript的多类型转换特性,使得开发者...

    EL表达式语言 非常详细

    ### EL表达式语言详解 #### 9.1 概述 在JSP页面开发中,为了提高代码的可读性和可维护性,开发者们逐渐转向使用标签库来替代传统的Java片段语言来实现页面的显示逻辑。然而,自定义标签虽然灵活,但也容易导致重复...

    关于EL表达式语言的简单总结

    ### EL表达式语言详解 #### 一、EL表达式简介 **EL**(Expression Language)是一种简洁的表达方式,用于在JSP页面中访问JavaBean属性、执行运算等操作。EL表达式广泛应用于JSP页面中,它使得开发人员能够更方便地...

    EL表达式语言基本语法

    EL表达式语言使得在JSP页面中处理数据变得更加简洁和直观,减少了大量显式Java代码的使用,提高了开发效率。它能够轻松访问和操作Java对象的属性,以及进行各种算术和逻辑操作,是JSP开发中的重要工具。

    Java-EL表达式语言讲解,适合初级人员入门学习

    ### Java-EL表达式语言详解 #### 一、EL表达式概述 EL(Expression Language),即表达式语言,是JavaServer Pages(JSP)技术中的一个重要组成部分。EL表达式主要用于简化JSP页面中的数据检索过程,使得开发者能够...

    jsp el 表达式语言文档

    **JSP Expression Language (EL) 知识点详解** ...总结,JSP EL表达式语言是提高JSP开发效率,减少页面代码复杂性的关键工具。通过理解和熟练使用EL,开发者能够创建更加整洁、可维护的JSP应用程序。

    EL表达式语言PPT

    EL表达式PPT,详细讲解了EL表达式用法

    EL表达式的使用详解

    EL 表达式是一种在 Java 服务器页面(JSP)中使用的表达式语言。它提供了一种简单的方式来访问和操作 Java 对象的属性。EL 表达式广泛应用于 JSP、Servlet、JSF 等 Web 开发技术中。本文将详细介绍 EL 表达式的使用...

    在JSP2.0中使用EL表达式语言.doc

    **在JSP2.0中使用EL表达式语言** EL(Expression Language)是JSP2.0引入的一种强大的数据访问语言,它简化了JSP页面中的数据操作,使得开发者无需编写scriptlet()就能方便地访问和处理应用程序中的数据。EL的...

    EL 表达式语言 jsp表达式

    EL(Expression Language,表达式语言)是JSTL(JavaServer Pages Standard Tag Library)中用于输出和输入Java表达式的一种语言。它简化了在JSP页面中获取和操作数据的过程,尤其是在属性值中使用表达式时。EL...

    EL表达式言语和JSTL

    **EL表达式语言和JSTL** EL(Expression Language)表达式语言是JavaServer Pages(JSP)技术的一部分,主要用于简化在JSP页面中获取、操作和显示数据。EL表达式语言提供了一种简洁的方式来访问JavaBeans属性、JSP...

    el表达式语言

    对el表达式的简介,适合刚接触el表达式的开发者来认识el表达式

    EL表达式的语法介绍

    EL 表达式是 Java 服务器页面(JSP)和 Java 服务器面板(JSF)中使用的一种表达式语言,用于在 Web 应用程序中实现动态内容。EL 表达式可以被解析成数值表达式和方法表达式,其中取值表达式用于引用一个值,而方法...

    EL表达式使用文档,方便快速使用EL表达式.pdf

    EL 表达式(Express Language)是一种强大的表达式语言,用于简化 JSP 页面中的编程。EL 表达式可以嵌入在 JSP 页面内部,减少 JSP 脚本的编写,目的是要替代 JSP 页面中脚本的编写。 EL 表达式的主要作用是获得四...

Global site tag (gtag.js) - Google Analytics