码迷,mamicode.com
首页 > 其他好文 > 详细

EL表达式

时间:2020-01-09 20:23:54      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:获取数据   就是   空指针异常   程序   空指针   map   技术   语言   方式   

EL  表达式
  EL,Expression Language,表达式语言,是一种在 JSP 页面中获取数据的简单方式。

  EL表达式是从 JSP2.0 版本开始才引入的概念。
  EL 表达式的基本语法形式很简单:在 JSP 页面的任何静态部分均可通过 ${expression} 的形式获取到指定表达式的值。

 

  技术图片

 

   运行结果:   

  技术图片

 

原因:

  EL 只能从 pageConext、request、session、application 四大域属性空间中获取数据。以上方式是无法获取到指定数据的。因为这个数据没有存放在四大域属性空间中。

 

  此时,可以将这个值存放到四大域属性空间中的任意一个中。然后访问其存放时的 key即可。

      技术图片

 

 

         如上图示:  将 username 值 存放在 四大域中的任意一个域中,使用 EL表达式 ,都能够正常访问到数据

   结果:

  技术图片

 

 

 

 

 


 获取数据

 

技术图片

 

 

结果:

  技术图片

 

 

 


(1 ) 从四大域中 依次查找

  无论是将变量存放到了哪一个域属性空间,通过${key}的方式,均可访问到该数据的值。EL 到底是从哪个域空间中查找指定的 key 的呢?

  其底层实际是从最小范围依次查找,直到查找到最大范围 application。这期间,只要查找到了,则直接获取,后面的域空间将不再查找。若最终没有查找到,则什么也不输出。

(2 ) 从指定 域中获取数据    (EL的内置对象)

  从 pageContext 依次查找到 application 域空间,会降低执行效率。

  若某属性确定存放在某个域属性空间,则可指定直接从该空间中查找。

  此时需要借助 EL 的四个域属性空间相关的内置对象 (EL中的内置对象 有11个,下面的只是其中的4个)

  技术图片

 

 

 


 

(3 ) 问 访问 Bean

  EL 可以通过 ${key.属性} 的方式获取到指定对象的指定属性值。其底层实际调用的是该对象的相应属性的 get 方法。
  当然,也可以使用${key[‘属性’]或${key[“属性”]的方式获取。该方式不常用。

 

  技术图片

 

 

 

 

 

注意: 若访问 为null的的对象的属性,EL是不会抛出空指针异常的。其仅仅是 不显示而已。


演示:

Student类中再添加一个成员变量  School 学校

  技术图片

 

 

 定义一个School类 ,定义一个 address属性。get/set方法 自行完善

  技术图片

 

 

 将Student中的相应的 有参方法 进行完善

demo.jsp中:

 

技术图片

 

 

 

结果:

 

 

    技术图片


 

 回顾:  成员变量 和  属性的区别!!

   通常情况下,成员 变量和 属性 是在程序中是同一个东西。但是,也有不同的时候。

   属性的定义: 指的是get/set方法名,去掉get/set后,首字母小写 之后的名字 就是属性名。

 


 访问数组

    技术图片

 

 结果:

  技术图片

 

                     在EL表达式中,若访问的数组元素超出了数组下标上限,EL不会抛出越界异常。

 

 

 

再来个稍微复杂点的例子:  (School类中   有sname 属性 和  address属性)

  技术图片

 

 结果:

  技术图片

 

 

 


 

 

  访问List

  技术图片

 

 

结果:

  技术图片

 

 

 

  注意:  在EL可以通过 索引访问List,但无法访问Set。 因为在Set中,没有索引这个概念。

 

 

 


访问 Map

  技术图片

 

 结果:

  技术图片

 

 

 


 运算符
  EL 表达式可以进行各种运算,其中常用的运算符有

  技术图片

 

   除了上述运算符外,还有一个非常有用的运算符 empty,其用法为${empty 变量},结果为布尔值。


    若变量未定义,则返回值为 true

    若变量为 String 类型,且其值为空串,则返回值为 true。

    若变量为引用类型,且其值为 null,则返回值为 true。

    若变量为集合类型,且其不包含任何元素,则返回值为 true。

 

    技术图片

 

 

 

 

 

 

 

 

   结果:

   技术图片

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

EL表达式

标签:获取数据   就是   空指针异常   程序   空指针   map   技术   语言   方式   

原文地址:https://www.cnblogs.com/penguin1024/p/12173108.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!