EL表达式

EL表达式简介

  • Expression Language
  • 使用EL表达式获取数据语法:“${标识符}”

EL表达式的作用

  • 获取数据:

    –EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象、获取数据。(例如:某个web域 中的对象,访问javabean的属性、访问list集合、访问map集合、访问数组)

  • 执行运算:

    • 利用EL表达式可以在JSP页面中执行一些基本的关系运算、逻辑运算和算术运算,以在JSP页面中完成一些简单的逻辑运算。如:${user==null}
    • 当使用算数运算符==等于号==比较两个对象时候,首先比较的是 两个对象是不是同一个对象,如果是那么返回true,如果不是,那么 使用equals方法进行比较,
    • 如果是用==小于,大于号==比较两个对象,如果对象没有实现Comparable接口,返回false,如果实现了,按照实现的规则进行比较
  • 获取web开发常用对象

    • EL 表达式定义了一些隐式对象,利用这些隐式对象,web开发人员可以很轻松获得对web常用对象的引用,从而获得这些对象中的数据。
  • 调用Java方法

    • EL表达式允许用户开发自定义EL函数,以在JSP页面中通过EL表达式调用Java类的方法。

EL是jsp内置的表达式语言

  • jsp2.0之后,不让再使用Java脚本,而是使用el表达式和动态标签来代替Java脚本
  • EL替代的是<%=…%>,只能用来输出,不能用来设置

EL表达式来读取四大域

  • ${xxx } ,全域查找名为xxx的属性,从小到大一次寻找,如果不存在,输出空字符串,而不是null
  • pageScope.xxx {requestScope.xxx }, session.xxx {application.xxx }
  • 实例:使用EL表达式获取属性这里写图片描述

javaBean 导航

  • 在使用EL表达式获取属性的时候, 可以直接.属性名来获取属性
  • 不需要向Java代码一样,调用get方法获取
  • 实例:javaBean导航这里写图片描述

EL可以输出的东西都在这11个内置对象中

  • 其中10个是map,pageContext不是map,他是pageContext类型,这个对象可以获取其他九个对象
  • ==pageScope==
    • 获取pageContext域属性,相当于pageContext.getAttribute(“xxx”)
  • ==requestScope==
    • 获取request域属性,相当于request.getAttribute(“xxx”)
  • ==sessionScope==
    • 获取session域属性,相当于session.getAttribute(“xxx”)
  • ==applicationScope==
    • 获取application域属性,相当于application.getAttribute(“xxx”)
  • ==param==
    • 对应参数,它是一个Map,其中key是参数,value是参数值,适用于单值的参数,相当于request.getParameter(“xxx”)
    • 这里写图片描述
  • ==paramValues==
    • 对应参数,她是一个Map,其中key是参数,value是多个参数值,适用于多值的参数,相当于request.getParameterValues(“xxx”)
    • 这里写图片描述
  • ==header==
    • 对应请求头,它是一个Map,其中key表示头名称,value是单个头值,适用于单值的请求头,相当于request.getHeader(“xxx”)
    • 这里写图片描述
  • ==headerValues==
    • 对应请求头,它是一个Map,其中key表示头名称,value是多个头值,适用于多值的请求头,相当于request.getHeaders(“xxx”)
    • 这里写图片描述
  • ==initParam==

    • 获取web.xml中context-param>内的参数,${ initParam.xxx},xxx就是param-name>标签内的值,进而得到param-value>中的值
          <context-param>
              <param-name>xxx</param-name>
              <param-value>xxx</param-value>
      
          </context-param>
  • ==cookie==
    • 用于获取cookie,Map

EL 函数库

  • 使用EL函数库的步骤
    • 导入jstl jar包
    • 在jsp页面中导入函数库 : <%@taglib uri=”http://java.sun.com/jsp/jstl/functions” prefix=”fn”%>
      • prefix 表示前缀,可以自己定义
      • uri 函数库的路径
  • 调用EL函数库的方法
    • 格式: prefixmethod(params) {fn:length(list)}
  • 常用的方法
    这里写图片描述

自定义EL函数

  • 开发函数处理类,这个类中的方法是静态方法,自定义的每一个 函数对应一个着类中的方法这里写图片描述
  • 建立tld文件,定义函数表达式这里写图片描述
  • 在web.xml文件中配置(这一步可以不做)这里写图片描述
  • 在jsp页面导入标签这里写图片描述
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值