欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

EL表达式

程序员文章站 2022-06-22 11:53:50
一。zEL表达式 1.命令格式:${作用域对象别名.共享数据} 2.命令作用: 1)EL表达式是EL工具包提供一种特殊命令格式【表达式命令格式】 2)EL表达式在JSP文件上使用 3)负责在JSP文件上从作用域对象读取指定的共享数据并输出到响应体二。EL表达式——作用域对象别名 1.JSP文件可以使用的作用域对象 1) Serv......

                             

一。EL表达式

     1.命令格式:${作用域对象别名.共享数据}

     2.命令作用:
          1)EL表达式是EL工具包提供一种特殊命令格式【表达式命令格式】
          2)EL表达式在JSP文件上使用
          3)负责在JSP文件上从作用域对象读取指定的共享数据并输出到响应体

二。EL表达式——作用域对象别名

     1.JSP文件可以使用的作用域对象

         1) ServletContext     application:      全局作用域对象

         2) HttpSession              session:       会话作用域对象

         3) HttpServletRequest   request:      请求作用域对象

         4) PageContext     pageContext:    当前页作用域对象,

             这是JSP文件独有的作用域对象。Servlet中不存在在当前页作用域对象存放的共享数据仅能在当前JSP文件中使用,不能
      共享给其他Servlet或则其他JSP文件
            真实开发过程,主要用于JSTL标签与JSP文件之间数据共享

            数据:    JSTL------->pageContext---->JSP


    2.EL表达式提供作用域对象别名
    
              JSP                       EL表达式

          application               ${applicationScope.共享数据名}

          session                   ${sessionScope.共享数据名}

          request                   ${requestScope.共享数据名}

          pageContext           ${pageScope.共享数据名}

三。EL表达式将引用对象属性写入到响应体

     1.命令格式: ${作用域对象别名.共享数据名.属性名}

     2.命令作用: 从作用域对象读取指定共享数据关联的引用对象的属性值。
                  并自动将属性的结果写入到响应体

     3.属性名: 一定要去引用类型属性名完全一致(大小写)

     4.EL表达式没有提供遍历集合方法,因此无法从作用域对象读取集合内容输出

四。EL表达式简化版

     1.命令格式: ${共享数据名}

     2.命令作用: EL表达式允许开发人员开发时省略作用域对象别名

     3.工作原理:
                  EL表达式简化版由于没有指定作用域对象,所以在执行时采用【猜】算法

          首先到【pageContext】定位共享数据,如果存在直接读取输出并结束执行
          如果在【pageContext】没有定位成功,到【request】定位共享数据,如果存在直接读取输出并结束执行
          如果在【request】没有定位成功,到【session】定位共享数据,如果存在直接读取输出并结束执行
          如果在【session】没有定位成功,到【application】定位共享数据,如果存在直接读取输出并结束执行
          如果在【application】没有定位成功,返回null

          pageContext--->request--->session--->application

     4.存在隐患:

                  容易降低程序执行速度,容易导致数据定位错误

     5.应用场景:
                   设计目的,就是简化从pageContext读取共享数据并输出难度

     6.EL表达式简化版尽管存在很多隐患,但是在实际开发过程中,开发人员为了节省时间,一般都使用
       简化版,拒绝使用标准版


五。EL表达式-----支持运算表达式

     1.前提:  在JSP文件有时需要将读取共享数据进行一番运算之后,将运算结果写入到响应体

     2.运算表达式:
      
                  1) 数学运算

          2) 关系运算:  >    >=   ==    <   <=  !=

                        gt   ge    eq   lt  le   !=

                  3)逻辑运算:  &&   ||    !


六。EL表达式提供内置对象    

      1.命令格式: ${param.请求参数名}

      2.命令作用: 通过请求对象读取当前请求包中请求参数内容
                   并将请求参数内容写入到响应体

      3.代替命令:  index.jsp
                   发送请求:  Http://localhost:8080/myWeb/index.jsp?userName=mike&password=123

           <%
                 String userName =   request.getParameter("userName");
                 String password =   request.getParameter("password");
           %>
           <%=userName%>
           <%=password%>

      1.命令格式:${paramValues.请求参数名[下标]}

      2.命令作用: 如果浏览器发送的请求参数是[一个请求参数关联多个值]
                  此时可以通过paramVaues读取请求参数下指定位置的值
          并写入到响应体

      3.代替命令: http://localhost:8080/myWeb/index.jsp?pageNo=1&pageNo=2&pageNo=3
                  此时pageNo请求参数在请求包以数组形式存在
          pageNo:[1,2,3]

          <%
              String  array[ ]= request.getParameterValues("pageNo");
          %>
          第一个值:<%=array[0]%>
          第二个值:<%=array[1]%>

七。EL表达式常见异常:
                 
         javax.el.PropertyNotFoundException:在对象中没有找到指定属性

本文地址:https://blog.csdn.net/qq_39390455/article/details/107531772

相关标签: EL 表达式 jsp