Web项目中的EL表达式

1为什么会出现EL
  • 在JSP2.0之后不建议使用JSP表达式和JSP脚本片段,建议使用EL表达式代替JSP表达式,使用JSTL代替JSP脚本片段
2.EL简介
  • EL的全称:Expression Language,表达式语言
  • EL的格式:${表达式}
  • EL主要用来将域对象中的属性输出到页面
  • EL表达式默认是全域查找
    • 先从page域中查找,找到直接返回,找不到再继续在其他域中找
    • 如果在application域中也找不到则返回一个空串
  • EL为我们提供了四个Scope对象,用来获取指定域中的对象
    • 这四个Scope对象是将域对象中的域单独拿了出来
    • 这四个Scope对象分别是pageScope、requestScope、sessionScope、applicationScope
      • pageScope
        • 用来获取page域中的对象
      • requestScope
        • 用来获取request域中的对象
      • sessionScope
        • 用来获取session域中的对象
      • applicationScope
        • 用来获取application域中的对象
    • 如果域对象中的属性名比较特殊,可以通过以下方式获取域对象中的值
获取request域中的对象:${requestScope['hello-kitty']}
  • 获取JavaBean中的属性值
    • EL表达式不能直接获取在JSP脚本片段中声明的对象,必须将对象放到域对象中才能获取
    • 通过对象.属性名的方式获取JavaBean的属性值,此时是调用了getXXX方法
    • 如果通过EL表达式获取的对象的属性还是一个对象,可以一直点下去
     <!-- 获取Student中的name属性值 -->
     <%
          Student stu = new Student(1,"孙悟空",520,new Address(1,"花果山"));
          //将stu放到域对象中
          request.setAttribute("stu", stu);
     %>
     ${stu.han }
     <hr>
     <!-- 获取Student中的address属性值 -->
     ${stu.address.name }
3.EL中的十一个隐含对象
  • 一个我们比较熟悉的
    • pageContext
      • 类型:PageContext
      • 作用:与JSP中的作用一样,一个顶JSP中的九个隐含对象,通过它可以获取JSP中的其他隐含对象
        • 使用EL表达式获取request对象
                         ${pageContext.request}
        • 使用EL表达式获取项目路径
                         ${pageContext.request.contextPath}
  • 四个Scope对象
    • pageScope
      • 类型:Map<String , Object>
      • 作用:获取page域中的对象
    • requestScope
      • 类型:Map<String , Object>
      • 作用:获取request域中的对象
    • sessionScope
      • 类型:Map<String , Object>
      • 作用:获取session域中的对象
    • application
      • 类型:Map<String , Object>
      • 作用:获取application域中的对象
  • 其他六个隐含对象
    • header
      • 类型:Map<String , String>
      • 作用:获取请求头中的信息
    • headValues
      • 类型:Map<String , String[]>
      • 作用:获取请求头中一个键对象多个值的情况
    • param
      • 类型:Map<String , String>
      • 作用:获取请求参数
    • paramValues
      • 类型:Map<String , String[]>
      • 作用:获取请求参数中一个键对应多个值的情况
    • cookie
      • 类型:Map<String , Cookie>
      • 作用:根据cookie的名称获取Cookie对象
    • initParam
      • 类型:Map<String , String>
      • 作用:获取当前Web应用的初始化参数
4.EL中的运算
  • 在EL表达式中可以直接进行加、减、乘、除等运算
  • 在EL表达式中有一个我们常用的运算符:empty
  • empty与null有以下不同
    • 空串时:null返回false;empty返回true
    • 空集合时:null返回false;empty返回true
  • 我们通常使用empty来判断一个字符串或集合是否为空
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值