• JSP中的EL


    1.为什么要使用EL

      使用<jsp:getProperty>,只能访问bean属性的性质,不能访问嵌套性质。例如一个含有Dog对象的Person对象。

      当然使用脚本可以工作,但是如果不想使用脚本呢?EL(表达式语言)可以使我们不受脚本的限制。

    2.使用(.)操作符和[]操作符

      使用.操作符时,第一个变量可以是一个隐式对象,也可以是一个属性。对应的,点号右边可以使一个映射键,也可以是一个bean性质。

      只有当点号邮编是左边变量的一个映射键或bean性质时,点号操作符才能正常工作。如果左边是一个数组或List,或者不遵循正常的java命名规则(例如,foo.Person等类似于类名的命名),点号无法正常使用,[]是更好的点号。

      可以这样访问元素

      可以这样访问元素

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

      上面的两种访问方法与下面的等价

       

      

    3.EL隐式对象

      EL隐式对象与JSP隐式对象不同,除了pageContext是真正的引用之外,其他隐式对象都是简单的Map(名/值对)。

    4.Map作用域对象和属性绑定的对象

      使用Map,只能获得相应属性,而不能获得对象的方法。不过幸好有pageContext是真正的对象引用,可是使用它来获得更多的信息。

      比如,想要获得request对象的method属性,不能使用

      

      而要使用

      

    5.作用域隐式对象的其他作用

      如果有不遵循java命名规则的String名作为属性,例如

      

      那么使用起来就有麻烦,容器会把foo当成某个作用域的属性,而且他有一个person性质,但是容器永远也找不到一个foo属性:

      

      使用作用域对象,就能使用[]操作符,这样就算是不遵循java命名规则的Sting名也能顺利使用:

      

    6.禁用EL

      默认情况下EL是开启的,如果希望JSP忽略EL,必须显式地指出。所谓的禁用,只是将EL表达式以文本的方式输出:

      

      禁用后:

      

      page指令优先于DD设置。

      在页面中也可以禁用个别表达式,只需要在不需要解析的EL表达式的“$”符号前加入一个反斜杠就行,如"$"。

  • 相关阅读:
    SpatiePermissionPermissionServiceProvider' not found
    ThinkPad L14G 连接外接显示屏无响应问题解决
    HBase 初学习之数据模型
    python 实现 kakfa 的 生产消费模式 和 发布订阅模式
    数据结构中树的基本概念
    MySQL行级锁、表级锁、页级锁详细介绍
    设置div只显示2行
    linux 关闭防护墙,永久关闭
    yum install nginx 时报错:No package nginx available.
    win10 查询端口,杀掉端口进程
  • 原文地址:https://www.cnblogs.com/juaner767/p/5503304.html
Copyright © 2020-2023  润新知