阅读787 返回首页    go 阿里云 go 技术社区[云栖]


EL表达式语言

①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的隐含对象

          

  隐含对象 对象类型 说明
页面上下文 PageContext javax.servlet.jsp.PageContext 用于访问JSP内置对象
A1 param java.util.map 包含页面所有参数的名称和对应值
A2 paramValues java.util.map 包含页面所有参数的名称和对应的多个值
A3 header java.util.map 包含header名和值
A4 headerValues java.util.map 包含header名和多个值
A5 cookie java.util.map 包含cookie名和值
A6 initParam java.util.map 包含servlet上下文初始参数名和值
B1 pageScope java.util.map 包含page范围内的属性
B2 requestScope java.util.map 包含request范围内的属性
B3 sessionScope java.util.map 包含session范围内的属性
B4 applicationScope java.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

 

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

 

 

 

 

 

  

 

 

 

 

 

 

 

 

最后更新:2017-04-03 14:54:11

  上一篇:go 机房收费系统之VB报表
  下一篇:go Linux下TTY驱动程序分析