`
wangrusheng5200
  • 浏览: 302536 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

el用法

    博客分类:
  • jstl
阅读更多

1、三元运算符

 例:   <input type="text" ${param.id eq '1' ? "readonly":""}>

上面代码意思是如果id等于1,文本框就只读,反之,什么也不做。 

2、如何遍历集合bean、Map、List

 使用点号(.)操作符访问性质和映射值

第一个变量可以是一个隐式对象,也可以是一个属性,点号右边可以是一个映射键(如果第一个变量)是映射,也可以是一个bean性质(如果第一个变量是Java Bean属性)。

a、 如果表达式中变量后面有一个点号,左边的变量必须是一个映射或一个bean。

点号左边的的变量要么是一个Map(有键),要么是一个bean(有性质)。不论变量是一个隐式对象还是一个属性,都是如此。

pageContext隐式对象是一个bean,它有获取方法,所有其他隐式对象都是Map。

             ${person.name}

bean
java.util.map 

b、 点号右边必须是一个映射键或一个bean性质。

           ${person.name}

getName()

setName()
 java.util.map(“name” , “Evan”)
c、点号右边必须遵循Java有关标识符的命名规则。

-必须以字母,_或$开头。

- 第一个字母后面可以有数字。

-不能是Java关键字。

 

 

 

[]就像是更好的点号

只有当点号右边是左边的一个bean性质或映射键时,点号操作符才能工作。仅此而已,但[]操作符就强大多了,而且更加灵活…… 

以下代码:

${person[“name”]}

 与下面的代码等价:

${person.name}

 简单的点号操作符之所以能工作,是因为person是一个bean,而且name是person的一个性质。

 但如果person是一个数组呢?

 或者如果person是一个List呢?

 再或者,name不遵循正常的Java命名规则怎么办?

[]让你有更多选择……

使用点号操作符时,左边只能是一个Map或一个bean,右边必须遵循 Java关于标识符的命名规则。但是使用[]时,左边可以是一个List或数组(可以是任何类型的数组)。这也说明,右边可以是一个数,或者可以解析为一个数,也可以是不遵循Java命名规则的标识符。例如,Map键可以是一个包含点号的String(“com.foo.trouble”)。

a、如果表达式中变量后有一个中括号[],左边的变量则有更多选择,可以是Map、bean、List或数组。

 ${musicList[“something”]}

数组 
java.util.Map

bean
java.util.List 

b、如果中括号里有一个String直接量(即用引号引起的串),这可以是一个Map键,或是一个bean性质,还可以是List或数组中的索引。

${musicList[“something”]}

数组

1:“Zero 7”,2:”BT”
 java.util.Map

(“surf”,”tahirt 80”)
getSongList()

setSongList()
 java.util.List

(1:“Zero 7”,2:”BT”)
 数组和List中的String索引会强制转换为int

访问数组的EL与访问List的EL是一样的。

大家要记住,这不是Java。在EL中,[]操作符并不是数组的访问操作符。不是这样的,它只是叫做[]操作符。如果实在要给它一个名字,就应该是“数组/List/Map/bean性质访问操作符 

如果中括号左边是一个数组或List,而且索引是一个String直接量,那么这个索引会强制转换为int。

下面这样不行:

${favoriteFood[“one”]}

因为”one”不能转换为一个int。如果索引无法强制转换,你就会得到一个错误。

 如果不是String直接量,就会计算

如果中括号里没有引号,容器就会计算中括号中的内容,搜索与该名字绑定的属性,并替换为这个属性的值(如果有一个同名的隐式对象,则始终使用隐式对象)。

Music is: ${musicMap[Ambient]}

查找一个名为“Ambient”的属性。

使用这个属性的值作为Map的键,或者返回null。

 Servlet中:

java.util.Map muicMap = new java.util.HashMap();

muicMap.put(“Ambient”,”Zero 7”);

muicMap.put(“Surf”,”Tahiti 80”);

muicMap.put(“DJ”,”BT”);

muicMap.put(“Indie”,”Frou Frou”);

 request.setAttribute(“musicMap”,musicMap);

request.setAttribute(“Genre”,” Ambient”);

 在JSP中这是可以的:

Music is: ${musicMap[Genre]}      计算为    Music is: ${musicMap[” Ambient”]}

 由于有一个名为” Genre”的请求属性,它的值为” Ambient”,而且” Ambient”是musicMap的一个键。

 在JSP中,下面这样是不行的:

Music is: ${musicMap[“Genre”]}       不变     Music is: ${musicMap[“Genre”]]}

因为musicMap中没有名为“Genre”的键。由于加了引号,容器不会进行计算,而只认为只是一个直接量键名。

 

在中括号里可以使用嵌套表达式

El中都是表达式。可以任意做嵌套表达式,深度不限。换句话说,可以把一个复杂的表达式放在另一个表达式中,而后者可以再放在一个表达式中……(如此继续)。表达式会从最内层中括号开始计算。

这一部分对你来说相当直观,因为这与小括号里嵌套Java代码没有什么不同。麻烦的是,要当心加不加引号。

 

Servlet中:

java.util.Map muicMap = new java.util.HashMap();

muicMap.put(“Ambient”,”Zero 7”);

muicMap.put(“Surf”,”Tahiti 80”);

muicMap.put(“DJ”,”BT”);

muicMap.put(“Indie”,”Frou Frou”);

request.setAttribute(“musicMap”,musicMap);

 

String[] musicTypes = {“Ambient”,” Surf”,” DJ”,” Indie”};

request.setAttribute(“MusicType”,musicTypes);

 

JSP中这样是可以的:

Music is ${musicMap[MusicType[0]]}

 变成

Music is ${ musicMap [“Ambient”]}

 变成

Music is Zero 7

 

分享到:
评论

相关推荐

    在自定义spring aop中使用el获取拦截方法的变量值。

    标题中的“在自定义Spring AOP中使用EL获取拦截方法的变量值”指的是在Spring的面向切面编程(AOP)中,通过Expression Language(EL,表达式语言)来访问被拦截方法的局部变量值。这通常涉及到Spring的代理机制、...

    倍福EL6692在TwinCAT中配置和使用.pdf

    下面将详细介绍EL6692的配置和使用方法。 一、硬件准备 为了实现跨网络数据交换,需要准备两个网络系统:网络系统A和网络系统B。网络系统A包括CX1020、IO、EL6692、EK1110、EK1100、IO、AX5206等设备,而网络系统B...

    el表达式用法部分解说

    本文将详细解释EL表达式的使用方法及其应用场景,帮助开发者更好地理解和掌握这一技术。 #### EL表达式的基础语法 EL表达式总是用大括号`{}`括起来,并且前面有一个美元符号`$`作为前缀,其基本形式为`${...

    EL表达式的使用方法

    ### EL表达式的使用方法 #### 一、简介 在Java Web开发中,EL(Expression Language)表达式是一种非常实用的功能,它允许开发者在JSP页面中动态获取对象属性的值或者执行简单的运算操作。通过使用EL表达式,可以...

    EL表达式的使用详解

    本文将详细介绍 EL 表达式的使用方法和应用场景。 一、EL 表达式的基本概念 EL 表达式是一种基于 XML 的表达式语言,用于访问和操作 Java 对象的属性。它提供了一种简单的方式来访问 Java 对象的属性,例如访问...

    EL表达式运算符用法

    本篇文章将详细介绍EL表达式中的各种运算符及其用法,包括逻辑运算符、关系运算符、算术运算符等,并通过具体的例子进行说明,帮助读者更好地理解和掌握EL表达式的使用技巧。 #### 二、EL表达式基础 EL表达式通常...

    EL表达式用法.docx

    EL表达式的使用极大地提高了JSP页面的可读性和可维护性,减少了页面与Java代码的耦合,使得开发者能更加专注于页面的呈现逻辑,而不是数据处理。通过掌握上述知识点,开发者能够更高效地利用EL表达式进行JSP开发。

    el表达式empty的用法

    通过使用EL表达式,开发者可以避免在JSP页面中编写复杂的Java代码,使得页面更加清晰和易于维护。 ### EL表达式的`empty`操作符详解 `empty`操作符是EL表达式中一个非常实用的功能,主要用于判断一个变量是否为空...

    比较实用的el方法和总结

    EL与JSTL(JavaServer Pages Standard Tag Library)一起使用,可以极大地提高开发效率和代码的可读性。本篇文章将深入探讨一些实用的EL方法,并结合JSTL和standard包中的功能进行总结。 1. EL基础表达式 EL允许...

    EL6001串口通信指南_EL6001实现串口通讯_

    6. **编程接口**:如果EL6001提供了编程接口,例如通过ASCII命令或通过库函数调用,你需要熟悉这些接口的使用方法,以便编写发送PLC数据的程序。 7. **错误检测与纠正**:EL6001可能支持奇偶校验、CRC(循环冗余...

    EL手册 EL手册 EL手册

    EL使用一种类似于JavaScript的语法,但它并不执行完整的脚本,而是专注于数据检索和计算。EL表达式通常在JSP页面中嵌入在`${...}`之中,用于动态地输出或设置页面内容。 EL支持多种操作,包括但不限于: 1. **属性...

    jsp EL调用业务方法

    本文将深入探讨如何使用JSP EL调用业务方法,以及它的优点和注意事项。 **JSP Expression Language (EL) 简介** EL 是一个简洁的表达式语法,主要用于读取和写入JavaBean的属性。它支持基本的算术、比较和逻辑运算...

    javax.el-api.jar/javax.el.jar

    例如,当你在JSP中使用`${}`语法来引用一个Bean的属性或者调用一个方法时,底层就是由`javax.el.jar`中的类来完成实际的解析和执行工作。 版本号`2.2.4`表示这两个库是EL 2.2规范的第四个次要版本。在EL 2.2中,...

    eladmin说明文档1

    "eladmin 说明文档1" EL-ADMIN 是一款基于 Spring Boot 2.1.0、 Spring Boot Jpa、JWT、Spring Security、Redis、Vue、Element-UI 的前后端分离的后台管理系统。该系统采用按功能分模块的开发方式,权限控制采用 ...

    第七章 EL表达式思维导图.png

    第七章 EL表达式思维导图.png

    el表达式简介和使用方法

    ### EL 表达式简介与使用方法 #### 一、EL 表达式的概念与特点 **EL**(Expression Language),即表达式语言,是 **JSP 2.0** 引入的一种用于计算和输出 Java 对象的简便语言。它是 JSP 2.0 的两大核心特性之一,...

    JSTL--EL使用手册.pdf

    JSP标准标签库(JSTL)是一个广泛使用的Java Server Pages标签库,它提供了一种简化JSP页面的方法。通过JSTL,开发者可以利用自定义标签来代替传统的Java代码片段,从而更方便地处理诸如循环、条件判断、数据格式化...

    el使用注意事项

    - EL表达式不支持方法调用,但可以通过EL函数库或者自定义EL函数来实现类似功能。 7. 安全性: 在使用EL时,要注意防止SQL注入和XSS攻击。对于用户输入的数据,应在EL表达式前进行过滤和转义,或者使用预编译的...

    Beckhoff倍福EL6022资料

    倍福串口终端模块资料 Documentation for Serial interface terminals EL6001 (1 channel RS232), EL6021 (1 channel, RS422/RS485) EL6002 (2 channels, RS232), EL6022 (2 channels, RS422/RS485)

    jspEL表达式和el

    然而,如果不小心暴露了敏感的Java对象或方法,可能会导致安全漏洞,因此在使用EL时需要注意数据的封装和权限控制。 综上所述,JSP EL是一种强大的工具,它简化了JSP页面中数据的访问和操作,提高了开发效率,同时...

Global site tag (gtag.js) - Google Analytics