`
zhangziyangup
  • 浏览: 1119026 次
文章分类
社区版块
存档分类
最新评论

el表达式

 
阅读更多

1、EL简介

JSP 2.0引入了一个新的特性——表达式语言。表达式语言可以和JSTL结合使用,也可以和Scriptlets结合使用。通过表达式语言,可以简化在JSP开发中的对象的引用。

2、语法结构

${expression}

通过表达式语言,可以非常简单地访问JavaBean中的属性,比如JSP中可以这样访问一个简单的参数:${userName}

也可以这样访问一个嵌套的参数:${userBean.userName.firstName}

表达式语言也可以和JSTL结合使用,如:

<c:iftest=”${sessionScope.car.numberOfItems>0}”>

……

</c:if>

JSP表达式可以包含运行逻辑,如:

<c:iftest=”${bean1.a<3 && bean1.a>0}”>

……

</c:if>

表达式包含在${}之间,如果需要在客户端输出${字符,那么可以使用以下的方式:<c:outvalue=”an expression is ${‘${’}true}”/>

为了和JSP以前的规范兼容,可以在页面前面声明是否忽略表达式,通过以下语句声明:<%@ pageisELIgnored=”true|false”%>

如果声明为true,那么将忽略表达式语言:如果为false,那么容器将解析表达式语言。

3、变量

EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。

因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。

假如途中找到username,就直接回传,不再继续找下去,。

通知JSP引擎调用pageContext.findAttribute()方法,以标识符为关键字从各个域对象中获取对象。如果域对象中不存在标识符所对应的对象,则返回结果为””(注意,不是null)。

属性范围在EL中的名称
Page PageScope
Request RequestScope
Session SessionScope
Application ApplicationScope

使用EL表达式获取request、session、applection域中的数据。

使用EL表达式获取List、Map集合中的元素。

<div align="center">
<h1>EL表达式的使用</h1>
<hr color="red">
<%--
pageContext.setAttribute("name","jiao");
request.setAttribute("name","heyley");

--%>
<br>
${name1}
<%--可以获取对象的属性值 --%>
<%
User entity=new User();
request.setAttribute("user",entity);
%>

<br>
${user.edu}
<%--可以获取bean中的bean中的……属性 --%>
${user.address.city.name}
<%--获取List集合中值 --%>
<%
List list=new ArrayList();
list.add(new User());
// list.add(new User());
request.setAttribute("list",list);
%>
<br>
${list[0].edu }
<%--获取 map集合中值--%>
<%
Map map=new HashMap();
map.put("xx1","heyley1");
map.put("xx2","heyley2");
map.put("xx3","heyley3");
map.put("xx4","heyley4");
map.put("5","heyley5");
request.setAttribute("map",map);
%>
<br>
${map.xx2 }
${map["5"] }
</div>

使用EL表达式获取Bean属性:使用${customerBean.address}的形式来访问JavaBean对象的属性;

<c:forEach var="good" items="${goodlist}">
<tr>
<td width="120" height="10" align="center">
${good.name}
</td>
<td width="120" height="10" align="center">
${good.model}
</td>
<td width="120" height="10" align="center">
${good.price}
</td>
<td width="120" height="10" align="center">
${good.number}
</td>
<td width="120" height="10" align="center">
${good.maker}
</td>
</tr>
</c:forEach>

EL表达式也可使用类如${1==1}的形式进行简单的逻辑判断。

4、EL隐含对象

与范围有关的隐含对象

与范围有关的EL 隐含对象包含以下四个:pageScope、requestScope、sessionScope 和applicationScope;

它们基本上就和JSP的pageContext、request、session和application一样;

在EL中,这四个隐含对象只能用来取得范围属性值,即getAttribute(String name),却不能取得其他相关信息。

例如:我们要取得session中储存一个属性username的值,可以利用下列方法:session.getAttribute("username")取得username的值

在EL中则使用下列方法${sessionScope.username}

与输入有关的隐含对象

与输入有关的隐含对象有两个:param和paramValues,它们是EL中比较特别的隐含对象。

param:把请求中的参数名和单个值进行映射。

paramValues:把请求中的参数名和一个array值进行映射。

例如我们要取得用户的请求参数时,可以利用下列方法:request.getParameter(Stringname)、 request.getParameterValues(Stringname)

在EL中则可以使用param和paramValues两者来取得数据。${param.name} 、 ${paramValues.name}

其他隐含对象

cookie

cookie:把请求中的Cookie名字和单一的值进行映射。JSTL并没有提供设定cookie的动作。

例:要取得cookie中有一个设定名称为userCountry的值,可以使用${cookie.userCountry}来取得它。

header和headerValues

header:把请求中的header名字和单个值映射。

headerValues:把请求中的header名和一个array值进行映射。

header 储存用户浏览器和服务端用来沟通的数据。例:要取得用户浏览器的版本,可以使用${header[‘User-Agent’]}

另外在很少机会下,有可能同一标头名称拥有不同的值,此时必须改为使用headerValues 来取得这些值。

initParam

initParam:把上下文的初始参数和单一的值进行映射。

initParam取得设定web站点的环境参数(Context)

例:一般的方法

String userid =(String)application.getInitParameter("userid");

可以使用 ${initParam.userid}来取得名称为userid

pageContext

pageContext:JSP页面的上下文,它提供了访问以下对象的方法:

ServletContext,Servlet的上下文信息;

Session,客户端的Session对象:

Request,请求对象;

Response,对客户端响应的队象。

例如: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表达式的使用详解

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

    el表达式用法部分解说

    ### EL表达式详解 EL(Expression Language)表达式在Java Web开发中扮演着重要的角色,尤其是在JSP(Java Server Pages)技术中。本文将详细解释EL表达式的使用方法及其应用场景,帮助开发者更好地理解和掌握这一...

    jsp页面中EL表达式被当成字符串处理不显示值问题的解决方法

    当EL表达式被错误地当作字符串处理而不是被解析时,会导致其原本要展示的数据无法正确显示。这个问题在使用Java EE 5及以上版本时比较常见。 要解决这个问题,首先需要理解EL表达式的解析与web.xml配置文件中指定的...

    EL表达式EL表达式

    **EL表达式(Expression Language)**是Java服务器页面(JSP)技术中的一个重要组成部分,它提供了一种简洁而强大的方式来访问和操作数据,如JavaBeans属性、JSP作用域中的对象等。EL表达式的设计目标是简化JSP页面的...

    EL表达式包括字符串处理,时间日期的格式化,数字处理

    ### EL表达式详解 #### 一、EL表达式的概述与基本使用 EL(Expression Language),即表达式语言,是JavaServer Pages (JSP) 2.0标准的一部分,用于简化JSP页面中对数据访问的操作。它允许开发者通过简单的语法在...

    EL表达式的语法介绍

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

    el 表达式el 表达式el 表达式

    **EL表达式简介** EL全称为Expression Language,最初在JSTL 1.0中作为方便数据存取的自定义语言出现,仅限于在JSTL标签内使用,如`${3 + 7}"&gt;`。然而,随着JSP 2.0的发布,EL已成为标准规范的一部分,适用于支持...

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

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

    JSTL以及EL表达式所需jar包

    EL表达式是Java EE中的一个强大功能,它允许开发者在JSP页面中简洁地访问和操作应用程序范围内的对象。EL表达式的语法类似于JavaScript,但它的主要目的是提供一种声明式的方式来获取和设置JavaBeans属性。例如,`${...

    EL表达式练习 EL表达式练习

    EL表达式主要用于简化JSP页面中的代码,提高可读性和可维护性。 **EL表达式的基本语法** EL表达式通常以"$"或 "#{}" 开头,如 `${expression}` 或 `#{expression}`。这里的`expression`是一个变量或方法调用,它...

    JAVAEE实验报告EL表达式和jstl标签库的使用.pdf

    JAVAEE 实验报告 EL 表达式和 JSTL 标签库的使用 EL 表达式(Expression Language)是一种在 JSP 页面中使用的脚本语言,用于简化 JSP 页面的开发。EL 表达式可以访问 JSP 页面中的变量、对象和集合,进行逻辑操作...

    el表达式EL表达式言语和JSTL

    **EL表达式** EL(Expression Language)表达式是Java服务器页面(JSP)2.0及更高版本中引入的一种轻量级、强大的脚本语言,主要用于简化Java Web应用程序中的数据访问。它允许开发者在JSP页面中直接访问JavaBean...

    jsp中的EL表达式简介

    【JSP EL表达式简介】 EL(Expression Language)是JavaServer Pages(JSP)中的一种简洁的表达式语言,设计的初衷是为了简化JSP页面的编写。EL受到ECMAScript和XPath表达式语言的启发,提供了更高效的方式来访问和...

    EL表达式全解语法中文技术文档

    **EL表达式全解语法中文技术文档** **一、EL表达式基础** EL(Expression Language,表达式语言)是JavaServer Pages(JSP)2.0及更高版本中引入的一种强大的脚本语言,用于简化页面中的数据访问。EL表达式在JSP中...

    EL表达式(很全很强大)

    ### EL表达式详解 #### 一、EL表达式的语法结构及使用 EL(Expression Language)是一种简化了的数据访问语言,用于获取JavaBean属性值或调用其方法等操作。其基本语法结构为`${expression}`,这使得开发者能够在...

    JSTL,EL表达式语法简介

    EL表达式通常在`${}`中书写,比如`${user.name}`用来获取名为`user`的对象的`name`属性。 **JSTL中的核心标签库(Core Tags)**包括用于控制流程、输出、URL处理、条件判断和迭代的标签。例如: - `&lt;c:if&gt;`用于条件...

    JS中如何引用EL表达式

    JS 中如何引用 EL 表达式 在 Java Web 开发中,EL(Expression Language)表达式是一种 powerful 的表达式语言,用于在 JSP 页面中访问和操作 JavaBean 的属性。然而,在 JavaScript 中引用 EL 表达式却存在一些...

    JSTL自定义EL表达式

    本资源主要讲解了如何在JSTL中定义和使用自定义的EL表达式,这对于提高JSP页面的可读性和可维护性至关重要。 首先,理解JSTL的基础概念。JSTL由几个核心标签库组成,如fmt、fn、sql、xml等,它们提供了处理日期和...

    el表达式介绍 el表达式使用帮助文档

    EL表达式的主要目标是提高JSP页面的可读性和可维护性,减少脚本代码的数量。 ### EL表达式的基本语法 EL表达式通常以`$`符号开头,后跟大括号`{}`,如`${expression}`。表达式可以是简单的属性引用,也可以包含...

Global site tag (gtag.js) - Google Analytics