Java EL表达式取值案例
EL(Expression Language)表达式主要用于JSP页面中,简化数据的访问和操作,以下是一些常用的EL表达式取值案例:

基本语法
EL表达式使用 语法:
${expression}
访问JavaBean属性
假设有一个User类:
public class User {
private String name;
private int age;
// getter/setter方法
}
在JSP中访问:
<%-- 设置属性 --%>
<jsp:useBean id="user" class="com.example.User" />
<jsp:setProperty name="user" property="name" value="张三" />
<%-- 取值 --%>
姓名:${user.name} <%-- 等价于 user.getName() --%>
年龄:${user.age} <%-- 等价于 user.getAge() --%>
访问数组和集合
数组访问
// Servlet中设置
String[] colors = {"红色", "蓝色", "绿色"};
request.setAttribute("colors", colors);
<%-- JSP中取值 --%>
第一个颜色:${colors[0]}
第二个颜色:${colors[1]}
List访问
// Servlet中设置
List<User> userList = new ArrayList<>();
userList.add(new User("张三", 25));
userList.add(new User("李四", 30));
request.setAttribute("userList", userList);
<%-- JSP中取值 --%>
第一个用户:${userList[0].name}
第二个用户年龄:${userList[1].age}
Map访问
// Servlet中设置
Map<String, String> map = new HashMap<>();
map.put("username", "admin");
map.put("password", "123456");
request.setAttribute("map", map);
<%-- JSP中取值 --%>
用户名:${map.username}
密码:${map["password"]} <%-- 两种方式都可以 --%>
访问内置对象
EL提供11个隐式对象:
<%-- 页面范围 --%>
${pageScope.name}
<%-- 请求范围 --%>
${requestScope.name}
<%-- 会话范围 --%>
${sessionScope.name}
<%-- 应用范围 --%>
${applicationScope.name}
<%-- 请求参数 --%>
${param.username}
${paramValues.hobby[0]}
<%-- 请求头 --%>
${header["User-Agent"]}
<%-- Cookie --%>
${cookie.username.value}
<%-- 初始化参数 --%>
${initParam.appName}
运算符使用
<%-- 算术运算 --%>
${3 + 2} <%-- 输出:5 --%>
${5 - 2} <%-- 输出:3 --%>
${4 * 3} <%-- 输出:12 --%>
${10 / 3} <%-- 输出:3.333... --%>
<%-- 比较运算 --%>
${user.age > 18} <%-- 输出:true/false --%>
${user.name == '张三'} <%-- 字符串比较 --%>
<%-- 逻辑运算 --%>
${true && false} <%-- 输出:false --%>
${true || false} <%-- 输出:true --%>
${!true} <%-- 输出:false --%>
<%-- 空值判断 --%>
${empty user} <%-- 判断user是否为null或空 --%>
${not empty userList} <%-- 判断集合是否不为空 --%>
完整示例
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>EL表达式示例</title>
</head>
<body>
<h2>EL表达式取值示例</h2>
<%-- 简单值 --%>
<p>用户名:${param.username}</p>
<%-- 对象属性 --%>
<p>用户姓名:${user.name}</p>
<p>用户年龄:${user.age}</p>
<%-- 集合数据 --%>
<p>颜色列表:${colors[0]}、${colors[1]}</p>
<%-- 条件判断 --%>
<p>是否成年:${user.age >= 18 ? "是" : "否"}</p>
<%-- 运算结果 --%>
<p>算术运算:${10 + 20}</p>
<%-- 为空判断 --%>
<p>用户列表是否为空:${empty userList}</p>
</body>
</html>
注意事项
- 作用域查找顺序:pageScope → requestScope → sessionScope → applicationScope
- 避免直接访问敏感数据:如密码等
- 注意空指针异常:使用
empty操作符进行判断 - EL默认开启:若需禁用,可在page指令中设置
isELIgnored="true"
这些案例涵盖了EL表达式的主要使用场景,可以根据实际需求灵活运用。