JSP Expression Language (EL) 是一種簡單的資料存取與運算語言,最初包含在 JSTL (JavaServer Pages Standard Tag Library) 1.0 版本中。自 JSP 2.0 起,EL 正式納入 JSP 標準規範,成為 JSP 內建的核心特性之一。EL 定義了變數存取、算術/邏輯/關係運算以及函數調用等功能,配合 JSTL 的核心標籤與流程控制標籤,能有效實現邏輯與視圖的分離,讓 JSP 頁面更加乾淨、易維護。
EL 運算式以 ${ ... } 包裹,其中可存取隱含物件、變數並進行運算。以下範例展示如何透過 EL 計算兩個請求參數的加總:
<h1>${param.a} + ${param.b} = ${param.a + param.b}</h1>
若在瀏覽器輸入網址:https://localhost:8080/myJsp/elTest.jsp?a=10&b=14,頁面將顯示:
<h1>10 + 14 = 24</h1>
param、paramValues、header、cookie、initParam、pageScope、requestScope、sessionScope、applicationScope 等 11 個隱含物件,分別對應 JSP 原生隱含物件的不同作用域與資料。${param.a} 即為存取請求參數 a 的值;EL 會依序在 page、request、session、application 四大作用域中尋找同名屬性,找到即回傳。+, -, *, / (或 div), % (或 mod))、邏輯運算子 (&& (或 and), || (或 or), ! (或 not))、關係運算子 (== (或 eq), != (或 ne), < (或 lt), > (或 gt), <= (或 le), >= (或 ge))、empty 運算子檢查 null/空字串/空集合等。傳統 JSP 使用 Scriptlet (<% ... %>) 會導致 Java 程式碼與 HTML 混雜,維護困難。EL 與 JSTL 結合,讓頁面僅包含標籤與運算式,邏輯移至 JavaBean 或 Controller,符合 MVC 架構精神,大幅提升程式碼可讀性與可測試性。
JSP EL 是現代 JSP 開發的基石,掌握其語法、隱含物件與運算子,能讓您撰寫出更優雅、更符合標準的動態網頁。後續文章將深入探討 JSTL 標籤庫與進階 EL 技巧,敬請期待。