${pageContext.request.contextPath} 避免專案重命名導致路徑硬編碼失效。int、Date 等自動轉為字串,JS 無法直接處理 Java 物件時極其有用。<input name="username" value="${username}">
<!-- 驗證失敗跳回頁面,用戶輸入自動回填 -->
與 EL 完美搭檔,邏輯判斷、迭代、格式化全靠它。
| 前綴 | 功能 | 範例 |
|---|---|---|
| c | 核心邏輯 | <c:if test="${user!=null}">...</c:if> |
| c | 設置變數 | <c:set var="path" value="${pageContext.request.contextPath}"/> |
| c | 安全輸出 | <c:out value="${content}" escapeXml="true"/> 防 XSS |
| c | URL 構建 | <c:url value="/api/user"><c:param name="id" value="1"/></c:url> |
| fn | 字串處理 | ${fn:substring(desc, 0, 50)} |
| fmt | 格式化 | <fmt:formatDate value="${date}" pattern="yyyy-MM-dd"/> |
僅建議用於 解析 JSON 字串(現代開發請用 JSON.parse())。
var data = '{"code":0,"list":[{"id":1,"q":"問題1"}]}';
var obj = eval("(" + data + ")"); // 轉為 JS 物件
console.log(obj.list[0].q); // "問題1"
安全警示:eval 執行任意代碼,嚴禁處理不可信輸入,現代專案一律改用 JSON.parse()。