Java EL表达式案例如何取值

wen java案例 27

Java EL表达式取值案例

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

Java 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>

注意事项

  1. 作用域查找顺序:pageScope → requestScope → sessionScope → applicationScope
  2. 避免直接访问敏感数据:如密码等
  3. 注意空指针异常:使用 empty 操作符进行判断
  4. EL默认开启:若需禁用,可在page指令中设置 isELIgnored="true"

这些案例涵盖了EL表达式的主要使用场景,可以根据实际需求灵活运用。

抱歉,评论功能暂时关闭!