首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> JSP 程式設計 >> 關於JSP

JSP Expression Language (EL) 完整參考:關鍵字、隱含物件、運算子優先序與自訂函式

     編輯:關於JSP

EL(Expression Language)是 JSP 2.0 引入的簡化資料存取語法,取代繁瑣的 <%= ... %>。本文系統整理 EL 關鍵字、11 大隱含物件、運算子優先序與自訂函式開發步驟,作為開發隨查手冊。

一、EL 關鍵字(保留字,不可作變數名)

div  mod  eq  ne  lt  gt  le  ge
and  or   not true false null instanceof empty

對應 Java 運算子:/ % == != < > <= >= && || ! boolean boolean null instanceof 空值判斷

二、11 大隱含物件(皆為 Map 型)

物件類型對應 API
pageContextMapPageContext 物件本身
pageScopeMapPage 範圍屬性
requestScopeMapRequest 範圍屬性
sessionScopeMapSession 範圍屬性
applicationScopeMapApplication 範圍屬性
paramMaprequest.getParameter()
paramValuesMaprequest.getParameterValues()
headerMaprequest.getHeader()
headerValuesMaprequest.getHeaders()
cookieMaprequest.getCookies()
initParamMapapplication.getInitParameter()

三、運算子優先序(高 → 低)

[]  .
()
- (一元)  !  empty
*  /  div  %  mod
+  - (二元)
<  >  <=  >=  lt  gt  le  ge
==  !=  eq  ne
&&  and
||  or
? : (三元)

四、自訂 EL 函式四步驟

  1. 撰寫靜態方法類
    package elfunction;
    public class Functions {
        public static String toUpper(String v) { return v.toUpperCase(); }
    }
  2. 編寫 TLD(放在 /WEB-INF/tlds/elfunction.tld)
    <function>
      <name>toUpper</name>
      <function-class>elfunction.Functions</function-class>
      <function-signature>java.lang.String toUpper(java.lang.String)</function-signature>
    </function>
  3. JSP 2.0+ 容器自動掃描 /WEB-INF/tlds/*.tld,無需 web.xml 註冊
  4. 頁面引入並使用
    <%@ taglib prefix="ELFun" uri="/WEB-INF/tlds/elfunction.tld" %>
    ${ELFun:toUpper("abcdefg")}  <!-- 輸出 ABCDEFG -->

五、實用提醒

  • ${empty obj} 判斷:null、空字串、空陣列、空 Collection、空 Map 皆回 true。
  • EL 自動處理 null,${user.name} 若 user 為 null 不會拋 NPE,輸出空字串。
  • 若需輸出 ${ 字面值,寫 \${ 或 $\{。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved