寒假生活指导 18
JSP 表达式语言:简化页面逻辑的利器
JSP 表达式语言是替代 <% %> 脚本的现代化方案,通过简洁语法实现数据访问与运算,大幅提升代码可读性。
- 基础语法
取值符号:${表达式}
访问作用域(优先级从高到低):
pageScope → requestScope → sessionScope → applicationScope
欢迎,${sessionScope.user.name}
当前时间:${serverTime}
-
操作对象与集合
访问对象属性:
${user.address.city}
操作 Map/List:
${scores["math"]}
${users[0].name}
判空简写:
$ -
隐式对象
EL 提供 11 个内置隐式对象,快速访问常见数据:
对象 说明 示例
param 获取请求参数 ${param.keyword}
header 获取请求头 ${header["User-Agent"]}
cookie 访问 Cookie ${cookie.JSESSIONID.value}
initParam 获取全局初始化参数 ${initParam.appVersion}
pageContext 访问 JSP pageContext 对象 ${pageContext.request.contextPath}
- 运算符与函数
关系运算:eq、ne、lt、gt(替代 ==、!=、<、>)
${user.age gt 18 ? "成人" : "未成年"}
算术运算:+、-、*、/ 或 div、% 或 mod
${(totalPrice * discount) / 100}
调用静态方法(需配置web.xml):
${fn:formatDate(now, initParam.dateFormat)}
- 结合 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)} |
|

浙公网安备 33010602011771号