寒假生活指导 18

JSP 表达式语言:简化页面逻辑的利器
JSP 表达式语言是替代 <% %> 脚本的现代化方案,通过简洁语法实现数据访问与运算,大幅提升代码可读性。

  1. 基础语法
    取值符号:${表达式}
    访问作用域(优先级从高到低):
    pageScope → requestScope → sessionScope → applicationScope

欢迎,${sessionScope.user.name}

当前时间:${serverTime}

  1. 操作对象与集合
    访问对象属性:
    ${user.address.city}
    操作 Map/List:
    ${scores["math"]}
    ${users[0].name}
    判空简写:
    $

  2. 隐式对象
    EL 提供 11 个内置隐式对象,快速访问常见数据:

对象 说明 示例
param 获取请求参数 ${param.keyword}
header 获取请求头 ${header["User-Agent"]}
cookie 访问 Cookie ${cookie.JSESSIONID.value}
initParam 获取全局初始化参数 ${initParam.appVersion}
pageContext 访问 JSP pageContext 对象 ${pageContext.request.contextPath}

  1. 运算符与函数
    关系运算:eq、ne、lt、gt(替代 ==、!=、<、>)
    ${user.age gt 18 ? "成人" : "未成年"}
    算术运算:+、-、*、/ 或 div、% 或 mod
    ${(totalPrice * discount) / 100}
    调用静态方法(需配置web.xml):
dateFormat yyyy-MM-dd

${fn:formatDate(now, initParam.dateFormat)}

  1. 结合 JSTL 增强功能
    通过 JSTL 函数标签库扩展 EL 能力:
    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>

${fn:toUpperCase(userName)}
${fn:substring(description, 0, 100)}

${fn:length(orderList)}
${fn:join(tags, ", ")}
实际应用案例
动态渲染商品列表:

${product.id} ${fn:escapeXml(product.name)}
posted @ 2025-02-18 18:34  一如初见233  阅读(10)  评论(0)    收藏  举报