• EL表达式语言总结


    EL介绍

    Expressive Language, JSP2.0引入,简化jsp开发中对对象的引用。

    基本语法

    ${表达式}

    常见用法

    根据其访问对象,可大体分成三类:访问数据及其各种表达式,访问EL的隐含对象以及访问环境信息的隐含对象。

    (1)访问数据及其各种表达式

    访问数据
    ${userinfo.id}            //1.访问userinfo的id属性。.和[]用于访问数据,二者等价。
    ${userinfo[id]} 
    ${userinfo.[user-name]}  //当属性名含有特殊符号时,就只能使用[],而不能${userinfo.user-name}
    ${arrBook[0]}            //2.(假定arrBook为数组对象)访问request范围中的数组arrBook中的第一个元素
    ${goodsList[0]}          //3.(假定goodsList为List对象)访问request范围中的goodsList的第一个元素
    
    算术运算
    ${5/2} 或者 ${5 div 2}      //5除以2
    ${17%3} 或者 %{17 mod 3}    //17求余3
    ${1+2}                     //注意+无法实现两个字符串的拼接,只能做算术运算。
    
    判空
    ${empty user1}          //user1==null或者user1==""的话,都会返回true。
    
    逻辑关系运算
    ${10==10}  或者  ${10 eq 10}                   //返回true
    ${10!=10}  或者  ${10 ne 10}                   //返回false
    ${10<10}  或者  ${10 lt 10}                    //返回false
    ${10>=10}  或者  ${10 ge 10}                   //返回true
    ${ true && true } 等价 ${"true" && "true"}     //可知,字符串会转为Boolean进行处理。
    ${!true} 或者  ${not true} 
    
    条件运算
    ${empty user1? "user1为null或空":user1}   //判断user1是否为空,然后输出对应的值。

    (2)访问EL的隐含对象

    
    1.获取页面上下文对象pageContext,可以访问jsp内置对象及其他们的属性值和方法。(request、response、out、session、application等)
    注意:不可以通过pageContext对象获取保存到request范围内容变量。
    ${pageContext.response}                      //获取response对象
    ${pageContext.response.ContentType}          //获取返回响应的内容类型。
    ${pageContext.session}                       //获取session对象
    ${pageContext.session.maxInactiveInterval}  //获取session的有效时间的值
    
    2.访问作用域范围的隐含对象
    有四个:pageScope、requestScope、sessionScope、applicationScope
    ${pageScope.user.name}                           //获取页范围内的user对象的name属性值
    ${requestScope.user1}                            //如之前设置过<% request.setAttribute("user1","uuu"); %>
    ${sessionScope.user2}                           //如之前设置过<% session.setAttribute("user2","uuu"); %> 
    ${applicationScope.user3}                       //如之前设置过<% application.setAttribute("user3","uuu"); %>

    (3)访问环境信息的隐含对象

    有六个:param对象和paramValues对象、header和headerValues对象、iniParam对象、cookie对象
    <% Cookie cookie = new Cookie("user","uuu"); //使用response对象设置一个请求有效地cookie对象。
    response.addCookie(cookie); %>
    ${cookie.user.value} //再使用EL获取该cookie对象的值

     

  • 相关阅读:
    Python第二天 (数据类型,变量 )
    python第一天(安装运行python)
    Linux shell 整数运算 let [ ] (( )) expr以及 浮点数 bc用法(转)
    2018年3月大事件
    2018年2月大事件
    项目假设与制约因素
    调用微信红包接口,本地可以服务器不可以。 请求被中止: 未能创建 SSL/TLS 安全通道
    【转】AddMvcCore,AddControllers,AddControllersWithViews,AddRazorPages的区别
    sql server create table 给字段添加注释说明
    HttpContext.SignInAsync 失效(表面解决了问题,未深入到.net core 源码去找问题,记录一下,等有时间翻一下.net core 源码试试能不能找到根本原因)
  • 原文地址:https://www.cnblogs.com/zadomn0920/p/javaweb.html
Copyright © 2020-2023  润新知