el表达式 订阅
EL(Expression Language) 是为了使JSP写起来更加简单。表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让Jsp的代码更加简化。 展开全文
EL(Expression Language) 是为了使JSP写起来更加简单。表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让Jsp的代码更加简化。
信息
使    用
JSP
外文名
Expression Language
作    用
在 JSP 中简化表达式的方法
编写人
鲁斯马丁
中文名
EL表达式
EL表达式内容简介
以MVC模式设计程序,JSP只是视图,视图的任务就是显示响应,而不是在JSP中做任何关于程序控制和业务逻辑的事情。所以在JSP页面中应该尽可能少的、或者是完全不出现Java代码。在使用JSP标准动作操作 JavaBean时,如果JavaBean的属性是 String类型或者基本类型,则能够实现类型的自动转换,如 JavaBean的属性从String类型可自动转换成int类型。如果 Javabean中的属性不是 String类型和基本类型,而是一个 Object类型,并且属性还有自己的属性,如何获得此 Object类型的属性呢?JSP标准动作中没有提供这种嵌套式访问机制,所以要想实现这个功能,就只能在JSP页面中通过Java代码来读取 Object类型的属性。从JSP2.0之后,可以使用EL表达式来处理这样的的问题。 [1]  所以, EL是JSP 2.0增加的技术规范,其全称是表达式语言(Expression Language)。EL语言的灵感来自于ECMAScript和XPath表达式语言。EL表达式语言是一种简单的语言,提供了在JSP中简化表达式的方法,目的是为了尽量减少JSP页面中的Java代码,使得JSP页面的处理程序编写起来更加简洁,便于开发和维护。 [2]  在JSP中访问模型对象是通过EL表达式的语法来表达。所有EL表达式的格式都是以“${}”表示。例如,${ userinfo}代表获取变量userinfo的值。当EL表达式中的变量不给定范围时,则默认在page范围查找,然后依次在request、session、application范围查找。也可以用范围作为前缀表示属于哪个范围的变量,例如:${ pageScope. userinfo}表示访问page范围中的userinfo变量。 [3]  EL 提供“.“和“[ ]“两种运算符来存取数据。当要存取的属性名称中包含一些特殊字符,如 . 或 - 等并非字母或数字的符号,就一定要使用“[ ]“。例如:${ user. My-Name}应当改为${user["My-Name"]}如果要动态取值时,就可以用“[ ]“来做,而“.“无法做到动态取值。例如:${sessionScope.user[data]}中data 是一个变量EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传""。EL表达式的属性如下:JSP 表达式语言定义可在表达式中使用的以下文字:JSP 表达式语言提供以下操作符,其中大部分是 Java 中常用的操作符:JSP 表达式语言定义了一组隐式对象,其中许多对象在 JSP scriplet 和表达式中可用:此外,还提供几个隐式对象,允许对以下对象进行简易访问:除了上述两种类型的隐式对象之外,还有些对象允许访问多种范围的变量,如 Web 上下文、会话、请求、页面:
收起全文
精华内容
下载资源
问答
  • el 表达式el 表达式el 表达式el 表达式el 表达式
  • EL 表达式

    2020-04-23 18:48:43
    a)什么是EL表达式,EL:表达式的作用? EL表达式的全称是: Expression Language。 是表达式语言。 EL表达式的什么作用:EL表达式主要是代替jsp页面中的表达式脚本在jsp页面中进行数据的输出。 EL表达式在输出数据的...

    1.EL 表达式

    a)什么是EL表达式,EL:表达式的作用?

    • EL表达式的全称是: Expression Language。 是表达式语言。
    • EL表达式的什么作用:EL表达式主要是代替jsp页面中的表达式脚本在jsp页面中进行数据的输出。
    • EL表达式在输出数据的时候,要比jsp的表达式脚本要简洁很多。
      在这里插入图片描述

    EL表达式的格式是: ${表达式}

    EL表达式在输出null值的时候,输出的是空串。jsp表达式脚本输出null 值的时候,输出的是null 字符串

    b)EL表达式搜索域数据的顺序

    • EL表达式主要是在jsp页面中输出数据。
    • 主要是输出域对象中的数据。
    • 当四个域中都有相同的key的数据的时候,EL表达式会按照四个域(pageContext、request、session、application)的从小到大的顺序去进行搜索,找到就输出。

    c)EL表达式输出Bean的普通属性,数组属性。List集合属性,map集合属性

    底层代码:EL表达式是通过属性(不论是否有该属性)的get方法获得的值

    在这里插入图片描述
    在这里插入图片描述

    d)EL表达式——运算

    语法: ${运算表达式},EL 表达式支持如下运算符:

    1)关系运算

    关系运算符 说明 范例 结果
    ==或eq 等于 $ { 5==5 } 或 $ { 5eq5 } true
    !=或ne 不等于 $ { 5!=5 } 或 $ { 5ne5 } false
    <或It 小于 $ { 3<5 } 或 $ { 3lt5 } true
    >或gt 大于 $ { 2>10 } 或 $ { 2gt10 } false
    <=或le 小于等于 $ { 5<=12 } 或 $ { 5le12 } true
    >=或ge 大于等于 $ { 3>=5 } 或 $ { 3ge5 } false

    2)逻辑运算

    逻辑运算符 说明 范例 结果
    &&或and 与运算 ${12==12 && 12<11 } 或 $ {12 ==12 and 12<11 } false
    或 or 或运算 ${12==12 ||12<11 } 或 $ {12 ==12 or 12<11 } true
    !或not 取反运算 !true{ !true}或{not true } false

    3)算数运算

    算数运算符 说明 范例 结果
    + 加法 $ {12+ 18 } 30
    - 减法 $ {18- 8} 10
    * 乘法 $ {12*12 } 144
    /或div 除法 $ { 144/12 } 或 $ { 144div12 } 12
    %或mod 取模 $ { 144%10 } 或 $ { 144mod10 } 4

    i. empty运算

    <%
    //
    1.值为null值的时候,为空
    request. setAttribute( "emptyNu1l", null);
    //2、值为空串的时候,为空
    request. setAttribute("emptyStr", "");
    //3,值是Object类型农组,长度为零的时候
    request. setAttribute(”emptyArr", new 0bject[]{});
    //4、list集合,元素个数为零
    List<String> list = new ArrayList<>();
    //list. add("abc "); 
    request. setAttribute("emptyList", list);
    //5,map集合,元素个数为零
    Map<String,object> map = new HashMap<String, 0bject>();
    map. put( "key1", "value1");
    request. setAttribute(" emptyMap", map);
    %>
    ${ empty emptyNull } <br/>
    ${ empty emptyStr } <br/>
    ${ empty emptyArr } <br/>
    ${ empty emptyList } <br/>
    ${ empty emptyMap } <br/>
    

    结果:
    在这里插入图片描述

    ii. 三元运算

    表达式1?表达式2:表达式3

    如果表达式1的值为真,返回表达式2的值,如果表达式1的值为假,返回表达式3的值。

    iii. "."点运算和[]中括号运算符

    • 点运算,可以输出Bean对象中某个属性的值。
    • [ ]中括号运算,可以输出有序集合中某个元素的值。并且[ ]中括号运算,还可以输出map集合中key里含有特殊字符的key的值。
    <%
    	Map<String, object> map = new HashMap<String, object>();
    	map.put("a.a.a", "aaaValue");
    	map. put( "b+b+b", "bbbValue") ;
    	map. put("c-c-c","cccValue");
    	request. setAttribute( s: "map", map);
    %>
    
    ${ map['a.a.a'] } <br>
    ${ map["b+b+b"] } <br>
    ${ map['c-c-c'] } <br>
    
    

    e)EL表达式的11个隐含对象

    EL个达式中11个隐含对象,是EL表达式中自己定义的,可以直接使用。

    变量 类型 作用
    pageContext PageContextlmpl 它可以获取jsp中的九大内置对象
    pageScope Map<String,Object> 它可以获取pageContext域中的数据
    requestScope Map<String,Object> 它可以获取Request域中的数据
    sessionScope Map<String,Object> 它可以获取Session域中的数据
    applicationScope Map<String,Object> 它可以获取ServletContext域中的数据
    param Map<String,String> 它可以获取请求参数的值
    paramValues Map<String,String[ ]> 它也可以获取请求参数的值,获取多个值的时候使用。
    header Map<String,String> 它可以获取请求头的信息
    headerValues Map<String,String[ ]> 它可以获取请求头的信息,它可以获取多个值的情况
    cookie Map<String,Cookie> 它可以获取当前请求的Cookie信息
    initParam Map<String,String> 它可以获取在web.xml中配置的<context-param>上下文参数

    i.EL获取四个特定域中的属性

    pageScope  			 pageContextrequestScope 			Request域sessionScope				Session域applicationScope	 			 ServletContext域

    ii.pageContext对象的使用

    在这里插入图片描述

    iii.其他

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • EL表达式

    2021-03-19 14:08:25
    (1)EL表达式是javaEE的标准,而且是servlet/jsp中的标准,只要是支持javaEE的服务器都自带,不需要额外导入EL表达式对应的第三方包 (2)EL表达式用来接受后端传递到页面的数据 (3)jsp 是默认支持EL表达式的,...

    (1)EL表达式是javaEE的标准,而且是servlet/jsp中的标准,只要是支持javaEE的服务器都自带,不需要额外导入EL表达式对应的第三方包

    (2)EL表达式用来接受后端传递到页面的数据

    (3)jsp 是默认支持EL表达式的,如果要忽略整个页面的EL表达式,可以将page指令中的 isELIgnored 属性设置为true,可以使用 \${表达式} 来忽略当前的el表达式

    (4)El表达式可以获取的数据包括普通字符串,对象,List,map等

    (5)获取方式

    • ${域名称.键名}:从指定域中获取指定键的值
      域名称:pageScope,requestScope ,sessionScope ,applicationScope
      pageScope:作用域是当前的jsp页面
      requestScope:作用域是一次请求内
      sessionScope:作用域是一次会话(浏览器开/关)
      applicationScope:作用域是整个项目工程,只要服务器不关闭

    • ${键名}:表示依次从最小的域中查找是否有该键对应的值,直到找到为止。一般我们使用${键名}就够了,除非在不同的域对象中保留了同名的值,才会指定在哪个域

    (6)使用${}获取对象,集合的值

    • 对象:${域名称.键名.属性名}
    • List集合:${域名称.键名[索引]}
    • Map集合:${域名称.键名[“key名称”]}

    (7)运算
    在这里插入图片描述

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,829
精华内容 9,131
关键字:

el表达式