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

EL 表達式與 JSTL 核心標籤庫完整指南

     編輯:Java 綜合教學

EL 表達式與 JSTL 核心標籤庫完整指南

EL 表達式基礎概念

Expression Language (EL) 主要用於在 JSP 頁面中查找各作用域內的資料並執行簡單運算,它不是程式語言,而是一種簡化的表示法。EL 通常搭配 JSTL (JSP Standard Tag Library) 使用,共同實現「無 Java 代碼」的 JSP 開發模式。

EL 基本語法

  • 格式: ${表達式},以美元符號 $ 開頭,內容置於花括號 {} 中。範例:${loginInfoBean.suser}
  • 混合靜態文本: 可將多個 EL 表達式與靜態文本串接。範例:Hello ${loginInfoBean.suser}, 密碼:${loginInfoBean.spwd}

EL 識別符與隱式物件

EL 識別符用於引用作用域屬性。除 11 個保留識別符(對應隱式物件)外,其他識別符均視為作用域變數名。${abc} 相當於 <%=pageContext.findAttribute("abc")%>。

11 大隱式物件:

隱式物件說明
pageContext當前頁面的 PageContext 實例
pageScope頁面作用域屬性 Map
requestScope請求作用域屬性 Map
sessionScope會話作用域屬性 Map
applicationScope應用程式作用域屬性 Map
param請求參數主值 Map (單值)
paramValues請求參數所有值 Map (陣列)
header請求標頭主值 Map
headerValues請求標頭所有值 Map (陣列)
cookieCookie Map
initParamWeb 應用初始化參數 Map

EL 存取器、運算子與字面值

  • 存取器: 使用 . 或 [] 存取屬性或集合元素。${userBean.suser} 等同 ${userBean["suser"]};${map["key"]} 取 Map 值。
  • 運算子: 算術 (+,-,*,/,div,%,mod)、關係 (==,eq,!=,ne,<,lt,>,gt,<=,le,>=,ge)、邏輯 (&&,and,||,or,!,not)、驗證 (empty)。empty 若值為 null、空集合、空陣列或空字串則回傳 true。
  • 字面值: 數字、字串 (單/雙引號)、布林 (true/false)、null。

JSTL 簡介與部署

JSTL (JSP Standard Tag Library) 由 Apache Jakarta 維護,包含 core、format、xml、sql 四大標籤庫。使用前需將 jstl.jar 與 standard.jar 放入 WEB-INF/lib,並將對應 .tld 檔置於 WEB-INF。

核心標籤庫 (core) 常用標籤

變數操作

  • <c:out value="..." [default="..."] [escapeXml="true"]/> 輸出變數
  • <c:set var="..." value="..." [scope="page|request|session|application"]/> 設定變數
  • <c:remove var="..." [scope="..."]/> 移除變數

流程控制

  • <c:if test="..." [var="..."] [scope="..."]>...</c:if> 單分支
  • <c:choose><c:when test="...">...</c:when><c:otherwise>...</c:otherwise></c:choose> 多分支

URL 與導向

  • <c:url value="..." [context="..."] [var="..."] [scope="..."]/> 編碼 URL
  • <c:import url="..." [context="..."] [charEncoding="..."] [var="..."] [scope="..."]/> 匯入頁面
  • <c:redirect url="..." [context="..."]/> 重導向
  • <c:param name="..." value="..."/> 附加參數

迴圈控制

  • 簡單迴圈: <c:forEach var="i" begin="1" end="100" step="1">${i}<br></c:forEach>
  • 集合迭代: <c:forEach var="item" items="${list}" varStatus="status">索引:${status.index} 值:${item.name}<br></c:forEach>
  • varStatus 提供 current, index, count, first, last, begin, end, step 等屬性。

格式化標籤庫 (fmt) 常用標籤

  • 日期格式化: <fmt:formatDate value="${date}" pattern="yyyy-MM-dd HH:mm:ss"/> 或使用 type (short/medium/long/full)。
  • 數字格式化: <fmt:formatNumber value="10.3289" pattern="#.##"/>

使用前需在 web.xml 註冊 fmt.tld,並在 JSP 引入 <%@ taglib prefix="fmt" uri="https://java.sun.com/jstl/fmt" %>。

為什麼要使用 JSTL?

傳統 JSP 混入 Java Scriptlet 會導致維護困難、除錯不易、分工模糊。JSTL 透過標籤封裝邏輯,配合 EL 表達式,讓頁面專注於呈現,降低開發成本,利於前後端分工。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved