閱讀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驅動程序分析