`
ihuangweiwei
  • 浏览: 266577 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

EL表达式简述

阅读更多

 

一.jsp禁用EL表达式的三种方式
1.使用斜杠"\"符号
    \${expression}


2.使用page指令
    <%@ pageisELIgnored="true|false"%>


3.在web.xml文件中配置<el-ignored>元素
    <jsp-config>
        <jsp-property-group>
            <url-pattern>*.jsp</url-pattern>
            <el-ignored>true</el-ignored>
        </jsp-property-group>
    </jsp-config>
   
二.EL表达式的基本语法


在页面中输出字符串可以如下使用
${"hello world"}

三.EL表达式的运算符


1.存取数据运算符[]和.
    通常情况,我们可以通过"."运算符获得指定对象的属性。
    但当属性中包含一些特殊符号("."或者"-"等非字母或数字符号)时,可以用[]格式访问属性值。
    如:${sessionScope.user[user-name]}
   
    同样,可以使用"[]"运算符来读取数组
    如:${sessionScope.fruit[1]}
   
    Map集合元素的获取,假如有一个key为fruit的键值对,我们可以如下获取
    如:${sessionScope.fruit["frutit"]}


2.算术运算符(+、-、*、/或div、%或mod)
注:%或者mod为求余运算符
    如:${15%4} 返回值为3


3.关系运算符
    ==或eq    等于
    !=或ne       不等于
    <或lt     小于
    >或gt     大于
    <=或le    小于等于
    >=或ge    大于等于
    注意:在使用EL表达式关系运算符时,不能够写成:
     ${param.pwd1} == ${param.pwd2}
     或
     ${${param.pwd1} == ${param.pwd2}}
     
     而应写成:
     ${param.pwd1 == param.pwd2}     
     
4.逻辑运算符
    1.&&或and运算符
    2.||或or运算符
    3.!或not运算符
        ${! username == "mr"}

5.empty运算符(特殊的运算符)
    用来确定一个对象或者变量是否为null或者空。
    ${empty expression}
    同时可以跟not运算符结合使用,用于确定一个对象或者变量是否为非空。
    ${not empty expression}   
   
6.条件运算符
    ${条件表达式?计算表达式1:计算表达式2}   
    ${empty user ? "user is null ": user}

 


EL表达式Map取值的隐含问题(转自:http://liuhanjun.iteye.com/blog/898275)

 

HashMap<Integer, String> numberMap= new HashMap<Integer, String>();
numberMap.put(0, "零");
numberMap.put(1, "一");

 

在jsp页面中${numberMap[1]}将取不到值,因为el表达式中数字1是Long类型(好BT啊,都没加L啊),无法匹配到numberMap中的Integer 1 。明白了原理,事儿就好办了。修改numberMap:

 

HashMap<Long, String> map = new HashMap<Long, String>();
map.put(0L, "零");
map.put(1L, "一");

 

然后就随心所欲哈${numberMap[1]},${numberMap[1 - 1]}均可取到值。

 

 

四.EL函数介绍(转自:yunyun050924

 

1:fn:toLowerCase函数将一个字符串中包含的所有字符转换为小写形式,并返回转换后的字符串,它接收一个字符串类型的参数。

例如:

fn:toLowerCase("Www.IT315.org") 的返回值为字符串“www.it315.org”
fn:toLowerCase("")的返回值为空字符串
 

2:fn:toUpperCase函数将一个字符串中包含的所有字符转换为大写形式,并返回转换后的字符串,它接收一个字符串类型的参数。

例如:

 

fn:toUpperCase("Www.IT315.org") 的返回值为字符串“WWW.IT315.ORG”
fn:toUpperCase("")的返回值为空字符串
 

3:fn:trim函数删除一个字符串的首尾的空格,并返回删除空格后的结果字符串,它接收一个字符串类型的参数。需要注意的是,fn:trim函数不能删除字符串中间位置的空格。

例如:

fn:trim(" www.it315.org ") 的返回值为字符串“www.it 315.org”。
 

4:fn:length函数返回一个集合或数组大小,或返回一个字符串中包含的字符的个数,返回值为int类型。fn:length函数接收一个参数,这个参数可以是<c:forEach>标签的items属性支持的任何类型,包括任意类型的数组、java.util.Collection、java.util.Iterator、java.util.Enumeration、java.util.Map等类的实例对象和字符串。

如果fn:length函数的参数为null或者是元素个数为0的集合或数组对象,则函数返回0;如果参数是空字符串,则函数返回0。

 

5:fn:split函数以指定字符串作为分隔符,将一个字符串分割成字符串数组并返回这个字符串数组。

fn:split函数接收两个字符串类型的参数,第一个参数表示要分割的字符串,第二个参数表示作为分隔符的字符串。

例如:

fn:split("www.it315.org", ".")[1]的返回值为字符串“it315”。
 

6:fn:join函数以一个字符串作为分隔符,将一个字符串数组中的所有元素合并为一个字符串并返回合并后的结果字符串。fn:join函数接收两个参数,第一个参数是要操作的字符串数组,第二个参数是作为分隔符的字符串。

如果fn:join函数的第二个参数是空字符串,则fn:join函数的返回值直接将元素连接起来。

例如:

假设stringArray是保存在Web域中的一个属性,它表示一个值为{"www","it315","org"}的字符串数组,则

fn:join(stringArray, “.")返回字符串“www.it315.org”
fn:join(fn:split("www,it315,org", ","), ".") 的返回值为字符串www.it315.org”
 

7:fn:indexOf函数返回指定字符串在一个字符串中第一次出现的索引值,返回值为int类型。fn:indexOf函数接收两个字符串类型的参数,如果第一个参数字符串中包含第二个参数字符串,那么,不管第二个参数字符串在第一个参数字符串中出现几次,fn:indexOf函数总是返回第一次出现的索引值;如果第一个参数中不包含第二个参数,则fn:indexOf函数返回-1。如果第二个参数为空字符串,则fn:indexOf函数总是返回0。

例如:

fn:indexOf("www.it315.org","t3") 的返回值为5
 

8:fn:contains函数检测一个字符串中是否包含指定的字符串,返回值为布尔类型。fn:contains函数在比较两个字符串是否相等时是大小写敏感的。

fn:contains函数接收两个字符串类型的参数,如果第一个参数字符串中包含第二个参数字符串,则fn:contains函数返回true,否则返回false。如果第二个参数的值为空字符串,则fn:contains函数总是返回true。实际上,

fn:contains(string, substring)等价于fn:indexOf(string, substring) != -1。
 
忽略大小的EL函数:fn:containsIgnoreCase
 

9:fn:startsWith函数用于检测一个字符串是否是以指定字符串开始的,返回值为布尔类型。

fn:startsWith函数接收两个字符串类型的参数,如果第一个参数字符串以第二个参数字符串开始,则函数返回true,否则函数返回false。如果第二个参数为空字符串,则fn:startsWith函数总是返回true。

例如:

 

fn:startsWith("www.it315.org","it315")的返回值为false
与之对应的EL函数:fn:endsWith
 

10:fn:replace函数将一个字符串中包含的指定子字符串替换为其它的指定字符串,并返回替换后的结果字符串。fn:replace方法接收三个字符串类型的参数,第一个参数表示要操作的源字符串,第二个参数表示源字符串中要被替换的子字符串,第三个参数表示要被替换成的字符串。

例如:

fn:replace("www it315 org", " ", ".")的返回值为字符串“www.it315.org”
 

11:fn:substring函数用于截取一个字符串的子字符串并返回截取到的子字符串。fn:substring函数接收三个参数,第一个参数是用于指定要操作的源字符串,第二个参数是用于指定截取子字符串开始的索引值,第三个参数是用于指定截取子字符串结束的索引值,第二个参数和第三个参数都是int类型,其值都从0开始。

例如:

fn:substring("www.it315.org", 4, 9) 的返回值为字符串“it315”
 

13:fn:substringAfter函数用于截取并返回一个字符串中的指定子字符串第一次出现之后的子字符串。fn:substringAfter函数接收两个字符串类型的参数,第一个参数表示要操作的源字符串,第二个参数表示指定的子字符串。

例如:

fn:substringAfter(“www.it315.org”, “.”)的返回值为字符串“it315.org”。
与之对应的EL函数为:fn:substringBefore
分享到:
评论
1 楼 cuqing 2015-07-20  
不错,挺完整的。[color=olive][/color]

相关推荐

    JSP 表达式语言

    JSP EL表达式通常以`${}`包裹,其中`expr`代表要计算的表达式。例如,如果有一个JavaBean对象`box`,其拥有`width`和`height`属性,你可以通过`.`操作符来访问它们,如`${box.width}`和`${box.height}`。要计算Box...

    EL和JSTL使用详解

    EL表达式的语法为`{}`,它支持以下几种类型的数据访问: 1. **访问JavaBean属性**: - 示例:如果在请求范围内设置了一个名为`user`的对象,那么可以通过`${user.username}`来访问`username`属性。 2. **访问数组...

    Servlet和JSP技术简述(英文翻译)

    4. **EL表达式**:Expression Language(EL)是JSP中的一个特性,用于简洁地访问JavaBean或其他数据源中的属性。 5. **Servlet生命周期**:Servlet有自己的生命周期,包括加载、初始化、服务、销毁四个阶段。理解...

    JSP超全讲解(带书签).pdf

    - 使用EL表达式可以直接在JSP页面中显示数据。 7. **EL自定义函数:** - 可以自定义函数并使用EL表达式调用这些函数。 8. **EL函数库(fn方法库):** - 提供了一些常用的字符串操作方法,如`trim()`、`indexOf...

    Seam框架文档简述

    Seam提供了对标准EL(Expression Language)的扩展,称为JBoss EL。这种扩展允许在表达式中直接传递参数,从而增强了表达式的功能。 ##### 8. 现有Java EE规范和标准的补充 Seam不仅仅是一个框架,它还致力于推动...

    jsp手把手图解入门教程pdf

    - **EL(Expression Language)介绍**:讲解了EL表达式的概念、作用及其基本语法。 - **运算符**:介绍了EL表达式中的各种运算符,包括算术运算符、关系运算符等。 ##### 14. 生命周期 - **生命周期**:解释了JSP...

    JSP试题及答案

    7. EL表达式通常以`${}`包裹,用于访问JavaBean的属性、集合的元素等。例如:`${myBean.myAttribute}`可以获取Bean的属性值。 8. `JSTL`中的`&lt;c:forEach&gt;`标签用于遍历数组、集合等。示例: ```jsp ${myList}" var...

    javaDemo

    javaDemo 简述 项目大小(完整&gt;一部分&gt;演示) 演示JDBC简单使用 使用通过QueryRunner以及DataSource连接池操作数据库 ...Part-前端jquery + ...Part-EL表达式,过滤器的简单使用 任务:使用Cookie实现一周内免登录在mv

    jsp内置对象课件,维护对象和增加和删除对象属性

    【JSP内置对象】是Java Server Pages(JSP)技术的核心组成部分,它们是JSP页面中预先定义并可以直接使用的对象,无需程序员...在实际编程中,结合JavaBeans、EL表达式和JSP标签库,可以构建出功能强大的动态Web应用。

    jsp标准标签库使用指南

    JSTL标签库中,表达式语言(EL,Expression Language)扮演着重要的角色,它允许开发者在不使用任何Java脚本的情况下,访问并操作JSP页面上的对象。EL语法简洁,类似于`{}`中的表达式,可以直接引用请求、会话、应用...

    软件工程1611-JSP-实验三.zip

    理解JSP的核心概念,如声明、脚本元素、指令、EL表达式和JSTL标签库,以及如何将它们应用于实际项目中。同时,熟悉Servlet容器的工作原理,以及JSP与Servlet之间的交互。此外,掌握基本的SQL知识以便与数据库进行...

    JAVA基础面试大全.doc corejavanetbook.doc jsp技术大全.pdf

    5. **EL表达式增强**:增加了对集合操作、类型转换、方法调用的支持。 6. **标准动作元素**:如`&lt;jsp:useBean&gt;`, `&lt;jsp:setProperty&gt;`, `&lt;jsp:getProperty&gt;`等动作元素的用法。 7. **错误处理和调试**:JSP 2.0...

    《Java开发实战经典》教师讲解PPT.7z

    17. **Java EE**:简述Java企业版,包括Servlet、JSP、JSTL和EL表达式,以及MVC架构的实现。 这些知识点构成了Java开发的基础,并且随着学习的深入,开发者可以进一步研究Java的高级特性,如Lambda表达式、Stream ...

    JSP环境配置(用Tomcat做服务器)

    **JSP环境配置指南——基于Tomcat服务器** ...配置JSP开发环境通常需要一...接下来,你可以继续学习JSP语法,创建更复杂的动态网页,并深入了解Servlet、EL表达式、JSTL标签库等JSP相关的技术,不断提升你的Web开发技能。

    jsp ppt 好东西

    1. **EL(Expression Language)**:EL是一种简洁的表达式语言,用于从页面上下文中获取数据,简化JSP中的表达式书写。 2. **JSTL(JavaServer Pages Standard Tag Library)**:JSTL是一组标准标签库,提供了许多...

    JSP&WEB;\06-09

    2. **JSP元素**:讲解JSP的三大元素——脚本元素(Scriptlets、声明、表达式)、指令(page、include、taglib)和动作(jsp:include、jsp:forward等)的使用方法和应用场景。 3. **EL和JSTL**:解释EL如何简化页面...

    zk developeguide3.5.pdf

    - **EL表达式**:阐述了表达式语言(EL)的基本概念和用法。 - **`id`属性**:解释了标识符(`id`)的重要性及其使用方法。 - **`if`和`unless`属性**:介绍了条件渲染的语法和应用场景。 - **`forEach`属性**:讲解了...

    JSP小实验不含有学号的报告四[内含完整实验报告要求文档以及答案].zip

    实验内容可能包括创建简单的JSP页面,展示用户输入,处理表单数据,使用session和cookie来实现会话管理,以及利用EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)进行数据处理和页面渲染...

Global site tag (gtag.js) - Google Analytics