目录

EL表达式是干什么用的?

EL表达式出现在JSP中主要是:

EL表达式很好用,基本的语法格式:

EL表达式的使用:

EL表达式优先从小范围中读取数据。

EL表达式中有四个隐含的隐式的范围:

EL表达式对null进行了预处理。如果是null,则向浏览器输出一个空字符串。

EL表达式取数据的时候有两种形式:

掌握使用EL表达式,怎么从Map集合中取数据:

掌握使用EL表达式,怎么从数组和List集合中取数据:

page指令当中,有一个属性,可以忽略EL表达式

通过EL表达式获取应用的根:

EL表达式中其他的隐式对象:

EL表达式的运算符


  • EL表达式是干什么用的?

    • Expression Language(表达式语言)

    • EL表达式可以代替JSP中的java代码,让JSP文件中的程序看起来更加整洁,美观。

    • JSP中夹杂着各种java代码,例如<% java代码 %>、<%=%>等,导致JSP文件很混乱,不好看,不好维护。所以才有了后期的EL表达式。

    • EL表达式可以算是JSP语法的一部分。EL表达式归属于JSP。

  • EL表达式出现在JSP中主要是:

    • 从某个作用域中取数据,然后将其转换成字符串,然后将其输出到浏览器。这就是EL表达式的功效。三大功效:

      • 第一功效:从某个域中取数据。

        • 四个域:

          • pageContext

          • request

          • session

          • application

      • 第二功效:将取出的数据转成字符串。

        • 如果是一个java对象,也会自动调用java对象的toString方法将其转换成字符串。

      • 第三功效:将字符串输出到浏览器。

        • 和这个一样:<%= %>,将其输出到浏览器。

  • EL表达式很好用,基本的语法格式:

    • ${表达式}

  • EL表达式的使用:

    • <%// 创建User对象User user = new User();user.setUsername("jackson");user.setPassword("1234");user.setAge(50);
      ​// 将User对象存储到某个域当中。一定要存,因为EL表达式只能从某个范围中取数据。// 数据是必须存储到四大范围之一的。request.setAttribute("userObj", user);
      %>
      ​
      <%--使用EL表达式取--%>
      ${这个位置写什么????这里写的一定是存储到域对象当中时的name}
      要这样写:
      ${userObj}
      等同于java代码:<%=request.getAttribute("userObj")%>
      你不要这样写:${"userObj"}
      ​
      面试题:${abc} 和 ${"abc"}的区别是什么?${abc}表示从某个域中取出数据,并且被取的这个数据的name是"abc",之前一定有这样的代码: 域.setAttribute("abc", 对象);${"abc"} 表示直接将"abc"当做普通字符串输出到浏览器。不会从某个域中取数据了。
      ​
      ${userObj} 底层是怎么做的?从域中取数据,取出user对象,然后调用user对象的toString方法,转换成字符串,输出到浏览器。
      ​
      <%--如果想输出对象的属性值,怎么办?--%>
      ${userObj.username} 使用这个语法的前提是:User对象有getUsername()方法。
      ${userObj.password} 使用这个语法的前提是:User对象有getPassword()方法。
      ${userObj.age} 使用这个语法的前提是:User对象有getAge()方法。
      ${userObj.email} 使用这个语法的前提是:User对象有getEmail()方法。
      EL表达式中的. 这个语法,实际上调用了底层的getXxx()方法。
      注意:如果没有对应的get方法,则出现异常。报500错误。
      ​
      ${userObj.addr222.zipcode}
      以上EL表达式对应的java代码:
      user.getAddr222().getZipcode()

    • EL表达式优先从小范围中读取数据。

      • pageContext < request < session < application

    • EL表达式中有四个隐含的隐式的范围:

    • pageScope 对应的是 pageContext范围。

    • requestScope 对应的是 request范围。

    • sessionScope 对应的是 session范围。

    • applicationScope 对应的是 application范围。

    • EL表达式对null进行了预处理。如果是null,则向浏览器输出一个空字符串。

    • EL表达式取数据的时候有两种形式:

      • 第一种:. (大部分使用这种方式)

      • 第二种:[ ] (如果存储到域的时候,这个name中含有特殊字符,可以使用 [ ])

        • request.setAttribute("abc.def", "zhangsan");

        • ${requestScope.abc.def} 这样是无法取值的。

        • 应该这样:${requestScope["abc.def"]}

    • 掌握使用EL表达式,怎么从Map集合中取数据:

      • ${map.key}

    • 掌握使用EL表达式,怎么从数组和List集合中取数据:

      •  ${数组[0]}

      • ${数组[1]}

      • ${list[0]}

    • page指令当中,有一个属性,可以忽略EL表达式

      <%@page contentType="text/html;charset=UTF-8" isELIgnored="true" %>
      isELIgnored="true" 表示忽略EL表达式
      isELIgnored="false" 表示不忽略EL表达式。(这是默认值)
      ​
      isELIgnored="true" 这个是全局的控制。
      ​
      可以使用反斜杠进行局部控制:\${username} 这样也可以忽略EL表达式。

    • 通过EL表达式获取应用的根:

      • ${pageContext.request.contextPath}

    • EL表达式中其他的隐式对象:

      • pageContext

      •  

      • param

    • paramValues

  • initParam

    • EL表达式的运算符

      • 算术运算符

        • +、-、*、/、%

      • 关系运算符

        • == eq != > >= < <=
      • 逻辑运算符

        • ! && || not and or
      • 条件运算符

        • ? :
      • 取值运算符

        • [ ]和.

      • 为空的时候

      • false

      • false

      • true

      • empty运算符

        • empty运算符的结果是boolean类型
        • ${empty param.username}
        • ${not empty param.username}
        • ${!empty param.password}

一文快速了解EL表达式基础知识相关推荐

  1. 快速了解机器视觉(CV)基础知识

    最近再查一些基础知识的时候看见了几篇文章写得很棒(在这篇文章的结束我会给出参考链接),然后我把他们整合了一下,跟大家分享,希望能有帮助: 1.计算机视觉领域四大基本任务中的应用: a.图片分类 b.目 ...

  2. 一文搞懂 SQL:基础知识和业务实践总结

    作者:cooperyjli,腾讯 CDG 数据分析师 SQL的全称是Structured Query Language(结构化查询语言),是一种古老而简洁的程序设计语言.看似平平无奇,一直被各种吐槽, ...

  3. EL表达式基础语法总结

    一.EL表达式概述 JSP主要的作用是实现动态页面,而动态页面中最主要的作用就是把数据动态显示. 目前,JSP中显示数据主要用表达式实现,即<%=%>可以说,EL (Expression ...

  4. 关于码云的一些基本知识_快速掌握Git命令基础知识 进阶必备哦

    最近在头条工作之余,遇到Git上面一些问题,趁这次的机会,补一补Git基础知识,纯属个人学习笔记,单纯简单,针对性强,如果对你有帮助那将是对我最大的鼓励,闲话不多说,立即进入正题,和我一起徜徉在Git ...

  5. 一文带你了解Nginx基础知识 | 建议收藏

    目录 1. 概述 2. 历史背景 3. nginx的优点 4. 主要组成部分 5. 版本规则 6. 版本选择 7. 编译配置 8. 开始编译 9. 配置语法 10. 重载,热部署,日志切割 1. 重载 ...

  6. linux启动docker_10分钟快速掌握Docker必备基础知识

    Docker是时下热门的容器技术,相信作为一名开发人员,你一定听说过或者使用过,很多人会把Docker理解为一个轻量级虚拟机,但其实Docker与虚拟机(VM)是两种不同的计算机虚拟化技术,也有很多人 ...

  7. 桌面版docker操作_10分钟快速掌握Docker必备基础知识

    Docker是时下热门的容器技术,相信作为一名开发人员,你一定听说过或者使用过,很多人会把Docker理解为一个轻量级虚拟机,但其实Docker与虚拟机(VM)是两种不同的计算机虚拟化技术,也有很多人 ...

  8. 什么是卫片?什么是卫片执法?一文了解卫片执法基础知识

    一.什么是卫片? 通俗来说,就是卫星拍的照片,卫片如同"天眼",通过卫片的"火眼金睛",各种非法占地的情况一览无遗. 自然资源部通过卫星对全国范围内土地拍摄照片 ...

  9. js+打开php文档,javascript打开word文档的方法_基础知识

    首先我们新建一个html文件,并且写一个FileUpLoad以及button控件. 代码如下: fileUpload 然后,在写一个javascript OpenFile方法. 代码如下: funct ...

最新文章

  1. celery 停止执行中 task
  2. flash动画制作成品_Flash制作点燃蛋糕蜡烛的互动动画
  3. 【转】InstantClient安装使用
  4. zen cart 操作-修改
  5. Spring 注解 @Resource和@Autowired
  6. java setsize_Java Vector setSize()方法与示例
  7. 马斯克:挑战纽北赛道的Model S配有7个座椅
  8. 《深入浅出DPDK》读书笔记(二):网卡的读写数据操作
  9. 直接拿来用!Google 新推 AI 模型打破了现有 CNN 技术壁垒
  10. C#中join 的lambada写法
  11. 10. CSS 文本
  12. LDO与DC/DC差别
  13. 如何用迅雷下载在网页中的Flash动画或课件
  14. sis地址发布器_Android Studio 3.6 正式版终于发布了,快来围观
  15. python正则表达式中的冒号_正则表达式,正则匹配冒号
  16. 全方位指导手把手教你实现自定义Spring Boot的 Starter公社
  17. ‘0‘、“0“、0、‘\0‘的区别
  18. Google earth 生成研究区适量边界(研究区边界从哪来?)
  19. 系分架构 - 软件架构设计
  20. 原 C语言实现万年历程序,C语言实现万年历源码

热门文章

  1. MP地面站在飞行数据显示界面显示自己想显示的数据
  2. RT-1052学习笔记 - GPIO架构分析
  3. 小学计算机老师毕业留言,高三老师给学生的毕业留言
  4. 计算机的随想作文600字,随想作文600字
  5. Android无线调试
  6. Dell R410 broadcom网卡驱动更新失败
  7. GICv3软件overview手册之GICv4对虚拟LPI的直接注入(1)
  8. 文字放在图片的下面 web前端网页布局
  9. android 隐藏文本,Android使用facebook隐藏库加密plaint文本
  10. html文件可用本地IP访问