• EL表达式(Exprission language)


    EL介绍

    Expressive Language, JSP2.0引入,简化jsp开发中对对象的引用,(可以直接读取对象的属性,不需要像之前java脚本那样去做,比较繁琐),使得访问存储在JavaBean中的数据变得非常简单。

    基本语法

    ${表达式}

    常见用法

    根据其访问对象,可大体分成三类:访问数据(javabean里面的数据)及其各种表达式访问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对象headerheaderValues对象iniParam对象cookie对象
    <% Cookie cookie = new Cookie("user","uuu");   //使用response对象设置一个请求有效地cookie对象。
       response.addCookie(cookie);      %>
    ${cookie.user.value}                           //再使用EL获取该cookie对象的值

    详情查看 :https://www.cnblogs.com/zadomn0920/p/javaweb.html

  • 相关阅读:
    单调栈的四种用法
    AtCoder Beginner Contest 223 F Parenthesis Checking(线段树)
    牛客寒假算法基础集训营4 B 进制(线段树)
    AtCoder Beginner Contest 243 E Edge Deletion(最短路)
    AtCoder Beginner Contest 238 E E Range Sums(建图)
    CodeForces 1632D New Year Concert(ST 表、二分)
    【windows terminal】cmd
    【vue3】监控响应: reactive/watch/watchEffect/provide.inject/computed
    Spring DM Application Context
    Android学习历程(一)结构理解
  • 原文地址:https://www.cnblogs.com/helloqiufei/p/11056911.html
Copyright © 2020-2023  润新知