01EL表达式

合集下载

el表达式写法

el表达式写法

el表达式写法
El表达式是一种用于模板引擎和视图中的动态表达式语言,用于在模板中嵌入动态数据。

以下是一些常见的El表达式的写法:
1. 访问属性:
- `${}`:访问对象`user`的`name`属性。

- `${user.address.city}`:访问嵌套属性。

2. 访问列表和映射:
- `${list[0]}`:访问列表`list`的第一个元素。

- `${map['key']}`:访问映射`map`中键为`key`的值。

3. 调用方法:
- `${user.getName()}`:调用对象`user`的`getName()`方法。

- `${utils.format(date)}`:调用静态方法`utils.format()`。

4. 条件判断:
- `${user.age > 18 ? '成年人' : '未成年人'}`:根据条件返回不同的值。

5. 迭代列表:
- `<c:forEach items="${users}" var="user">`:迭代列表`users`中的每个元素,用变量`user`引用每个元素。

6. 计算表达式:
- `${5 + 3}`:计算表达式的结果。

7. EL隐式对象:
- `${pageContext.request.contextPath}`:访问EL隐式对象中的属性,如访问请求的上下文路径。

这些只是El表达式的一小部分写法,实际使用中还有更多的写法和用法,可以根据需要进一步学习和掌握。

《EL表达式》PPT课件

《EL表达式》PPT课件

取得sessionID
${pageContext.session.id}
8.3 EL存取器
使用EL存取器(也称作导航)可以访问JavaBean、Map、对象数 组和List等中的数据。EL对数据的访问比使用Scriptlets有着代码量少, 易维护的特点。
• 使用存取器读取JavaBean中的数据 • 使用存取器读取Map中的数据 • 使用存取器读取数组中的数据 • 存取器复杂应用
8.2.1 .与[ ]运算符
(1)如果存取的属性名称包含一些特殊的符号,如“.”或者是“-”等非 字母或数字的符号时,就必须使用[ ],例如。 ert-Name 这样写是错误的,必须使用[ ],代码如下。 er[“user-Name”] (2)如果使用变量来传入,那么也就只能使用[ ]。例如。 <%String data = “userName”;%> ${er[data]} 这样做的效果等于于上面代码。 ${erName}
8.4 综合练习
1、结合EL内置对象和EL算术表达式做一个简单的计算器程序。
8.5 小结
本章详细介绍了什么是EL表达式,还介绍了EL的运算符。介绍了EL 的内置对象以及其作用和使用方法。最后重点介绍了EL存取器,以及 如何通过存取器读取JavaBean中数据,如何读取Map中数据等等。
1
整理ppt
8.1 EL运算符
EL提供了多种运算符操作,比如算术运算符、关系运算符、逻辑运算 符、验证运算符等。本节将对这些运算符进行详细的讲解。
2
整理ppt
8.1.1 算术运算符
通过EL提供算术运算符,开发者可以非常方便的在JSP页面进行算 术操作。而且使用算术运算符和Java的算术运算符非常相视,开发者 能很熟练的使用这些算术运算符来进行开发,从而简化了页面代码量。

EL语言表达式(一)【语法和特点】

EL语言表达式(一)【语法和特点】

EL语⾔表达式(⼀)【语法和特点】
⼀、基本语法规则:
EL表达式语⾔以“${”开头,以"}"结尾的程序段,具体格式如下:
${expression}
其中expression:表⽰要指定输出的内容和字符串以及EL运算符组成的表达式。

⼆、EL语⾔表达式的特点:
(1)EL语法简单,⽅便
(2)EL可以与JSTL结合使⽤,也可以和JavaScript语句结合使⽤。

(3)EL可以⾃动转换类型。

(4)EL既可以访问⼀般的变量,也可以访问JavaBean中的属性和嵌套属性、集合对象。

(5)EL中可以执⾏算术运算、逻辑运算、关系运算和条件运算等。

(6)EL中可以获得命名空间(PageContext对象,他是页⾯中所有其他内置对象的最⼤范围的集成对象,通过它可以访问其他内置对象)。

(7)EL中在进⾏除法运算时,如果除数是0,则返回⽆穷⼤Infinity,⽽不返回错误。

(8)EL中可以访问JSP的作⽤域(request、session、application以及page)
(9)扩展函数可以与Java类的静态⽅法进⾏映射。

三、EL中保留的关键字
and eq gt
instanceof div or
le false empty
not lt ge。

el表达式的几种取值方式

el表达式的几种取值方式

在EL(Expression Language)中,可以通过以下几种方式来取得表达式的值:
1. ${expression}
在JSP页面或者其他支持EL表达式的地方,使用${}语法可以直接获取表达式的值。

比如${}会取得user对象的name属性的值。

2. ${pageContext.findAttribute("name")}
使用pageContext对象的findAttribute方法可以获取作用域中的属性,比如page、request、session、application等。

3. ${}
可以通过param对象获取HTTP请求的参数值,比如${param.id}可以获取名为id的
请求参数的值。

4. ${header["User-Agent"]}
使用header对象可以获取HTTP请求的头信息,比如${header["User-Agent"]}可以获
取User-Agent头的值。

5. ${}
可以通过initParam对象获取当前web应用的初始化参数,比如${initParam.encoding}
可以获取名为encoding的初始化参数的值。

这些是EL表达式中常用的几种取值方式,通过这些方式可以方便地获取各种作用域中的属性值、请求参数、头信息和初始化参数的值。

EL表达式

EL表达式

EL表达式总结EL表达式总是用大括号括起,而且前面有一个美元符($)前缀:${expression}。

表示式中第一个命名变量要么式一个隐式对象,要么是某个作用域(页面作用域、请求作用域、会话作用域或应用作用域)中的一个属性。

点号操作符允许你使用一个Map键或一个bean性质名来访问值,例如,使用${foo.bar}可以得到bar的值,在此,bar是Map foo的Map键名,或者是bean foo的一个性质。

放在点号操作符右边的东西必须遵循Java的标识符命名规则!(换句话说,必须以一个字母、下划线或美元符开头,第一个字符后面可以有数字,但不能有其他字符)。

点号右边只能放合法的Java标识符。

例如,${foo.1}键就不可以。

[]操作符比点号功能更强大,因为利用[]可以访问数组和List,可以把包含命名变量的表达式放在中括号里,而且可以做任意层次的嵌套,只要你受得了。

例如,如果musicList是一个ArrayList,可以用${musicList[0]}或${musicList[“0”]}来访问列表的第一个值。

EL并不关心列表索引加不加引号。

如果中括号里的内容没有用引号引起来,容器就会进行计算。

如果确实放在引号里,而且不是一个数组或List的索引,容器就会把它看作是性质或键的直接命名。

除了一个EL隐式对象(PageContext)外,其他EL隐式对象都是Map。

从这些隐式对象可以得到任意4个作用域中的属性、请求参数值、首部值、 cookie值和上下文初始化参数。

非映射的隐式对象是pageContext,它是PageContext对象的一个引用。

不要把隐式EL作用域对象(属性的Map)与属性所绑定的对象混为一谈。

换句话说,不要把requestScope隐式对象与具体的JSP隐式对象 request混淆。

访问请求对象只有一条路,这就是通过pageContext隐式对象来访问(不过,想从请求得到的一些东西通过其他EL隐式对象也可以得到,包括param/paramValues、header/headerValues和cookie)。

el表达式计算

el表达式计算

el表达式计算
el表达式是一种在Java EE中广泛使用的表达式语言,它的全称是Expression Language。

通过el表达式,我们可以在JSP页面或者JavaBean中使用简洁的语法进行数据的获取和操作,提高开发效率和可维护性。

在使用el表达式进行计算时,我们可以使用一些内置的函数和操作符,来实现各种复杂的计算逻辑。

比如,我们可以使用算术操作符来进行加减乘除的计算,使用逻辑操作符来进行条件判断,使用比较操作符来进行大小比较等等。

el表达式还支持一些常用的函数,比如字符串操作函数、日期操作函数、数学函数等等。

这些函数能够帮助我们对数据进行一些常见的处理和转换,提高代码的可读性和简洁性。

除了内置的函数和操作符,我们还可以使用el表达式的一些特性来实现更加复杂的计算。

比如,我们可以使用el表达式的三元运算符来实现条件选择,使用el表达式的条件运算符来实现条件判断,使用el表达式的迭代标签来进行循环操作等等。

在使用el表达式进行计算时,我们需要注意一些细节。

比如,el 表达式是区分大小写的,所以我们需要注意变量名的大小写。

另外,el表达式中的变量必须先进行初始化才能使用,否则会报错。

此外,el表达式中的变量可以通过点号来访问其属性或者调用其方法。

el表达式是一种简洁、灵活、易用的表达式语言,能够帮助我们快速进行数据的获取和操作。

通过合理地使用el表达式,我们可以提高代码的可读性和简洁性,提高开发效率和可维护性。

希望本文能够对大家理解和使用el表达式有所帮助。

表达式语言(el)的语法格式

表达式语言(el)的语法格式

表达式语言(Expression Language)是一种用于在软件应用中进行数学计算和逻辑判断的特殊语言。

它通常用于在动态网页、模板、配置文件和其他与业务逻辑相关的场景中进行数据处理和计算。

EL的语法格式包括以下几个方面:1. 表达式结构:EL表达式通常由一系列的变量、运算符和函数组合而成,用于对数据进行操作和计算。

它的结构通常由一组操作数和运算符组成,比如 x + y 或者 func(x, y) 等形式。

2. 变量引用:在EL中,可以通过使用 ${} 符号来引用变量,变量的引用形式为 ${var},其中 var 为变量名。

这种形式的引用可以方便地将变量的值嵌入到文本中,或者作为计算表达式的一部分参与运算。

3. 字面量:除了引用变量,EL中还可以直接使用字面量,包括整数、浮点数、字符串等。

比如 123、3.14、"hello" 等都可以作为字面量直接出现在表达式中。

4. 运算符:EL支持多种常见的数学和逻辑运算符,包括加减乘除、取模、逻辑与或非等。

这些运算符可以用于对变量和字面量进行计算和逻辑判断,从而完成复杂的数据处理和逻辑控制。

5. 函数调用:除了基本的运算符,EL还支持函数的调用,这些函数可以是预定义的一些常用函数,也可以是用户自定义的函数。

通过函数调用,可以实现更复杂的数据处理和逻辑控制。

EL的语法格式简洁清晰,易于理解和使用。

它在软件开发中发挥着重要的作用,不仅可以用于动态网页的数据展示和计算,还可以用于配置文件的数据处理和逻辑判断。

了解和掌握EL的语法格式对于提高软件开发效率和质量都具有重要意义。

EL语言的语法格式设计简洁清晰,易于理解和使用,但在实际应用中,我们还需要更深入地了解其具体的语法规则和用法。

下面我们将对EL表达式的语法格式进行更详细的介绍,包括变量引用、字面量、运算符、函数调用等方面的内容。

1. 变量引用在EL语法中,变量引用是一种非常常见的操作。

el表达式条件语句

el表达式条件语句

el表达式条件语句1. El表达式条件语句啊,就像是生活中的选择开关。

比如说,在一个购物网站的页面上,我想根据用户是否登录显示不同的内容。

如果${user.loggedIn}为true,那就显示“欢迎回来,[用户名]”,要是为false呢,就显示“请登录或注册”。

这el表达式条件语句是不是超实用,就像一把能打开不同功能大门的钥匙。

2. 你知道el表达式条件语句吗?它可神奇啦!就好比是一个智能小管家。

想象一下,在一个公司的内部系统里,有个任务分配模块。

对于新员工,也就是当${employee.experience < 1}时,系统会给他们分配一些基础任务,像数据录入之类的。

而对于老员工,即${employee.experience >= 1}时,就会分配更复杂的项目任务。

这el 表达式条件语句是不是像一个懂得分配的小管家呢?3. El表达式条件语句哟,就像一场游戏里的不同关卡规则。

我给你讲个例子哈。

在一个在线游戏的社区里,对于普通玩家,要是${player.level < 10},那只能访问公共区域,能看到的游戏攻略也有限。

可是当${player.level >= 10},就像开启了新的世界,能进入高级玩家专属区域,看到更多独家攻略。

这条件语句是不是像游戏里神秘又有趣的规则设定呢?4. 嗨,el表达式条件语句就像是一个超级灵活的变色龙。

比如说在学校的成绩管理系统里,对于成绩优秀的学生,也就是当${student.score >= 85},页面会显示“优秀,继续加油”,用绿色字体还带个小奖杯图标呢。

而对于成绩不太理想的,像当${student.score < 60}时,页面就会显示“要努力哦,有补考机会”,用红色字体。

这el表达式条件语句是不是很像根据环境变色的变色龙呢?5. El表达式条件语句啊,就如同生活中的红绿灯。

我举个例子你就明白了。

在一个酒店预订系统里,如果${room.available}为true,就像绿灯亮了,显示“房间可预订,欢迎下单”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第22页
2011-8-2
开源IT 开源IT
initParam
就像其他属性一样,我们可以自行设定web 站台的环境参数(Context),当我 们想取得这些参数时,可以使用initParam 隐含对象去取得它,例如:当我们 在web.xml 中设定如下: <?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="/xml/ns/j2ee" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> : <context-param> <param-name>userid</param-name> <param-value>mike</param-value> </context-param> : </web-app> 那么我们就可以直接使用 ${erid}来取得名称为userid,其值为 mike 的参数。下面是之前的做法: String userid = (String)application.getInitParameter("userid");
第21页
2011-8-2
开源IT 开源IT
header 和headerValues
header 储存用户浏览器和服务端用来沟通的数据, 当用户要求服务端的网页时,会送出一个记载要 求信息的标头文件. 例如:用户浏览器的版本、用户计算机所设定的 区域等其他相关数据。假若要取得用户浏览器的 版本,即${header[“User-Agent”]}。另外在鲜少机 会下,有可能同一标头名称拥有不同的值,此时 必须改为使用headerValues 来取得这些值。
JSP有9 个隐含对象,EL有隐含对象总共有 11 个
第15页
2011-8-2
开源IT 开源IT
EL 隐含对象
第16页
2011-8-2
开源IT 开源IT
EL 隐含对象分类
这11 个隐含对象(Implicit Object),将它分成三类: 1. 与范围有关的隐含对象 applicationScope sessionScope requestScope pageScope 2. 与输入有关的隐含对象 param paramValues 3. 其他隐含对象 cookie header headerValues initParam pageContext 2011-8-2 开源IT 开源IT
寻找变量的值的存在
返回null
返回值
第8页
2011-8-2
开源IT 开源IT
自动转变类型
EL 除了提供方便存取变量的语法之外,它另外一 个方便的功能就是:自动转变类型,我们来看下 面这个范例: ${param.count + 20} 假若窗体传来count的值为10时,那么上面的结果 为30 下面是之前的做法: String str_count = request.getParameter("count"); int count = Integer.parseInt(str_count); count = count + 20;
第19页
2011-8-2
开源IT 开源IT
由Param.html 窗体传过来的值,我们必须指定编码方 式,才能够确保Param.jsp能够顺利接收中文,传统的 做法为: <%request.setCharacterEncoding("GB2312");%> 假若是使用JSTL写法时,必须使用I18N 格式处理的标 签库,例:<fmt:requestEncoding value="GB2312" /> Param.jsp主要使用EL的隐含对象param来接收数据。 但是必须注意:假若要取得多重选择的复选框的值时, 必须使用paramValues, 例如:使用paramValues 来取得“兴趣”的值 ${ername} ${paramValues.habit[0]} ${paramValues.habit[1]}
返回值 false true true false true true
第12页
2011-8-2
开源IT 开源IT
EL运算符
逻辑运算符 逻辑运算符号 && 或者 and || 或者or ! 或者not 说明 交集 并集 非 举例 ${true && false} ${true || false} ${!true} 结果 false true false
第18页
2011-8-2
开源IT 开源IT
与输入有关的隐含对象
与输入有关的隐含对象有两个:param和 paramValues,它们是EL中比较特别的隐含对象。 一般而言,我们在取得用户的请求参数时,可以利用 下列方法: request.getParameter(String name) request.getParameterValues(String name) 在EL中则可以使用param和paramValues两者来取得 数据。 ${} ${} 这里param 的功能和request.getParameter(String name) 相同, 而paramValues 和 request.getParameterValues(String name)相同。如 果用户填了一个表格,表格名称为username,则我 们就可以使用${ername}来取得用户填入的 值。
第3页
2011-8-2
开源IT 开源IT
.与 [ ] 运算符 与
EL 提供 . 和 [ ] 两种运算符来存取数据。下列两 者所代表的意思是一样的: ${er.sex} 等于${er["sex"]} . 和 [ ] 也可以同时混合使用,如下: ${sessionScope.shoppingCart[0].price} 回传结果为shoppingCart中第一项物品的价格。 不过,以下两种情况,两者会有差异:
第6页
2011-8-2
开源IT 开源IT
变量取得
变量取得
语法 : ${variableName} 说明: 在一定的范围内寻找变量(并不是对变量付值),并取得变量的值 范围:
Page
Request
Session
Application
第7页
2011-8-2
开源IT 开源IT
变量取得
流程: 沿范围寻找变量的值,若没有的话就返回null
第20页
2011-8-2
开源IT 开源IT
cookie
所谓的cookie是一个小小的文本文件,它是以key、 value的方式将Session Tracking的内容记录在这 个文本文件内,这个文本文件通常存在于浏览器 的暂存区内。JSTL并没有提供设定cookie的动作, 因为这个动作通常都是后端开发者必须去做的事 情,而不是交给前端的开发者。假若我们在 cookie 中设定一个名称为userCountry的值,那么 可以使用${erCountry}来取得它。
第5页
2011-8-2
开源IT 开源IT
EL 变量
EL 存取变量数据的方法很简单,例如: ${username}。它的意思是取出某一范围中 名称为username的变量。因为我们并没有 指定哪一个范围的username,所以它的默 认值会先从Page 范围找,假如找不到,再 依序到Request、Session、Application范 围。假如途中找到username,就直接回传, 不再继续找下去,但是假如全部的范围都没 有找到时,就回传null
第9页
2011-8-2
开源IT 开源IT
保留字
保留字 尽量不要把变量名称和以下的保留字设置成相同
and no Or instanceof
eq ne lt empty
gt lt ge divtru false null mod
第10页
2011-8-2
开源IT 开源IT
EL运算符
二.EL运算符 算术运算符 运算符号 + * / 或者div % 或者 mod 说明 加 减 乘 除 求余 举例 ${1+1} ${1-1} ${3*4} ${4/2} ${7%5} 结果 2 0 12 2 2
第4页
2011-8-2
开源IT 开源IT
.与 [ ] 运算符 与
(1) 当要存取的属性名称中包含一些特殊字符,如 . 或 – 等并非字母 或数字的符号,就一定要使用 [ ],例如: ${user.My-Name } 上述是不正确的方式,应当改为: ${user["My-Name"] } (2) 我们来考虑下列情况: ${er[data]} 此时,data 是一个变量,假若data的值为"sex"时,那上述的例子等 于${er.sex}; 假若data 的值为“name”时,它就等于${}。 因此,如果要动态取值时,就可以用上述的方法来做, 但 . 无法做到动态取值。
开源IT培训 开源 培训
EL AND JSTL概述

第1页 讲演时间:2011-8-2
EL 简介
EL 全名为Expression Language,它原本是JSTL 1.0为 方便存取数据所自定义的语言。当时EL只能在JSTL 标 签中使用,如下: <c:out value="${ 3 + 7}"> 程序执行结果为10。但是你却不能直接在JSP 网页中使 用: <p>Hi ! ${ username }</p> 到了JSP 2.0 之后,EL 已经正式纳入成为标准规范之一。 因此,只要是支持Servlet 2.4 / JSP2.0 的Container, 就都可以在JSP 网页中直接使用EL 了。 假若您所用的Container 只支持Servlet 2.3/JSP 1.2,如: Tomcat 4.1.29,您就不能在JSP 网页中直接使用EL, 必须安装支持Servlet 2.4 / JSP 2.0 的Container
相关文档
最新文档