EL表达式语言

来源:互联网 发布:负面情绪 知乎 编辑:程序博客网 时间:2024/04/30 11:02

①EL的基本语法        

          1.EL概述

           ELExpression Language,表达式语言,是JSP2.0中引入的一种计算和输出Java对象的简单语言,为不熟悉JSP页面开发的人提供了一种开发JSP应用程序的新途径。   

          2.使用EL的前提条件----确认EL没有被禁用。(JSP2.0中默认不禁用EL

          ①使用\可以禁用EL
          ②使用page指令中的isELIgnored=true也可以禁用EL

          在web.xml中写入以下语句将禁用EL

    <jsp-config>         <jsp-property-group>          <url-pattern>*.jsp</url-pattern>       <el-ignored>true</el-ignored>       ...    </jsp-config>

  

         3.语法格式为${…}形式,如:

          ${“hello”}将在页面上输出”hello”字符串

        4.EL的特点

        ①可以访问JavaBean的属性
        ②可以访问JSP的所有作用域
        ③可以与JSTL结合,也可以与JavaScript结合使用
        ④可以执行各类运算
        ⑤节省代码,如:

            1)<%=request.getParameter(“username”) %>

            等价于:${param.username}

            2)<%=request.getAttribue(“id”) %>

             等价于:${requestScope.id}

        5.EL的存取范围

           •系统默认从page中去找,然后依次是request, session, application,如果都没有找到,则返回null
           •查找时使用以下前缀:

                requestScope 1, sessionScope 2,applicationScope 3,pageScope 4

          •例如:${pageScope.username} 4…

               ${applicationScope.username} 3

               执行顺序是:4->1->2->3

 

②EL的运算符

        1.存取运算符
        2.算术运算符
        3.关系运算符
        4.逻辑运算符
        5.Empty运算符
        6.条件运算符
        7.运算符的优先级
 
       1.存取运算符------.[]
       •.通常使用.来获取属性
       •[]当表达式中已存在.,以及有数组,列表和映射时,用[]

       举例:

       <%  String arrFruit={“a”,”b”,”c”};>

                      request.setAttribute(“fruit”,arrFruit);  

        %>

        ${requestScope.fruit[1]}

        <%  Map map=new HashMap();

        map.put(“1”,”a”);map.put(“2”,”b”);   

        map.put(“3”,“c”);

         session.setAttribute(“fruit”,map); %>

        ${sessionScope.fruit[“1”]}

       2. 算术运算符---+, -, *, /div, %mod

       举例:

                ${16/3}, ${16 div 3}, ${5 mod 2}, ${5%2}

        注意:${“a”+”b”}写法错误,应写成:${“a”}${“b”}

       3.关系运算符

        ==/eq

         !=/ne

        </lt

        <=/le

        >/gt

        >=/ge

       举例:

              ${1==3}, ${1 le 3},

              ${param.pwd1!=param.pwd2}

        4.逻辑运算符

         &&/and

         ||/or

         !/not

         举例:

                ${username==“root”|| pwd==“123”}

                ${!username==“root”}

         5.empty运算符

            判断一个对象是否为空,和null不同。

           举例:

                  ${empty sessionScope.user}

                  ${not empty pageScope.user}

         6.条件运算符

            ? :

           举例:

                   ${empty user?”user为空”:user}

         7.运算符优先级【从高到低】

           [] .

           ()

           -(负号) not ! Empty

           * /div % mod

           + -(减号)

           < lt<=le >gt>=ge

           == eq !=ne

           && and

           || or

           ?:

③EL的隐含对象

          

 隐含对象对象类型说明页面上下文PageContextjavax.servlet.jsp.PageContext用于访问JSP内置对象A1paramjava.util.map包含页面所有参数的名称和对应值A2paramValuesjava.util.map包含页面所有参数的名称和对应的多个值A3headerjava.util.map包含header名和值A4headerValuesjava.util.map包含header名和多个值A5cookiejava.util.map包含cookie名和值A6initParamjava.util.map包含servlet上下文初始参数名和值B1pageScopejava.util.map包含page范围内的属性B2requestScopejava.util.map包含request范围内的属性B3sessionScopejava.util.map包含session范围内的属性B4applicationScopejava.util.map包含application范围内的属性

注:A1~A6  代表访问环境信息

       B1~B4  代表访问作用域信息

 

      1.PageContext用于访问JSP内置对象

             ${PageContext.session.username}

       2.paramparamValues用于获得请求参数值

            <inputname=“check” type=“checkbox” id=“like” value=“English”>

            <inputname=“check” type=“checkbox” id=“like” value=“Chinese”>

            <inputname=“check” type=“checkbox” id=“like” value=“Math”>

            爱好为:

           ${paramValues.like[0]}${paramValues.like[1]}${paramValues.like[2]}

        3.headerheaderValues用于获取http请求的header

            ${header.host}, ${header[host]},

            ${header[“user-agent”]}

        4.pageScope等用于访问作用域范围的内置对象

            ${sessionScope.user}

       5.cookie用于访问设置的cookie对象

            <%Cookie cookie=new Cookie(“user”,”abc”);

                   reponse.addCookie(“cookie”);%>

             ${cookie.user.value}—将显示abc

        6.initParam用于获取Web初始参数值

           <context-param>

                <param-name>programer</param-name>

                <param-value>FataliBud</param-value>

                …

              ${initParam.teacher}—将显示:FataliBud

 

            最后:其他资料可参加百度百科需学习。

 

 

 

 

 

  

 

 

 

 

 

 

 

 

原创粉丝点击