【webapp】jsp EL 的基本语法和用法

发布时间 2023-10-09 11:16:14作者: wp7ers
EL(表达式语言)是用于在 JSP 页面中访问和操作数据的简洁表达式语言。
EL 提供了一种简化和统一的方式来访问变量、属性、集合和其他对象。
以下是 EL 的基本语法和用法: 基本语法: ${expression}:用于在 JSP 页面中嵌入 EL 表达式。 ${object.property}:访问对象的属性。 ${map.key}:访问 Map 集合中的键对应的值。 ${array[index]}:访问数组中指定索引位置的元素。 访问变量: ${variable}:访问页面范围、请求范围、会话范围或应用程序范围的属性或参数。 ${param.paramName}:访问请求参数的值。 ${header.headerName}:访问请求头的值。 ${cookie.cookieName}:访问 Cookie 的值。 运算符: 算术运算符:+、-、*、/、%。 比较运算符:==、!=、
<><=、>=。 逻辑运算符:&&、||、!。 空安全运算符:?:,用于处理空值。 EL 函数: 内置函数:EL 提供了一些内置函数,如字符串处理、数学运算、日期处理等。例如:${fn:length(string)}、${math:round(number)}、${fn:substring(string, start, end)}。 自定义函数:您可以定义自己的 EL 函数,并在 JSP 页面中使用。需要在标签库中声明和配置自定义函数。 EL 集合操作: 遍历集合:${collection} 可以直接遍历数组、List、Set、Map 等集合类型。 遍历数组:${array}。 遍历 List:${list}。 遍历 Set:${set}。 遍历 Map:${map}。 EL 条件判断: 条件运算符:${condition ? trueValue : falseValue},根据条件返回不同的值。 EL 转义: ${'${expression}'}:用于输出 ${expression} 字符串而不进行 EL 表达式求值。 EL 的语法和用法可以根据具体需求进行扩展和深入学习。EL 提供了一种简单且强大的方式来在 JSP 页面中处理和操作数据,减少了与 Java 代码的耦合性。
当使用 EL 表达式时,下面是一些示例说明:

访问变量和属性:
假设在 JSP 页面中有以下变量和对象:

jsp
Copy
<%
    String name = "John Doe";
    request.setAttribute("age", 30);

    class Person {
        private String address;

        public String getAddress() {
            return address;
        }

        public void setAddress(String address) {
            this.address = address;
        }
    }

    Person person = new Person();
    person.setAddress("123 Main Street");

    pageContext.setAttribute("person", person);
%>
您可以使用 EL 表达式访问这些变量和属性:

jsp
Copy
Name: ${name} <br/>
Age: ${age} <br/>
Address: ${person.address}
上述 EL 表达式会分别输出变量 name 的值、请求属性 age 的值以及对象 person 的 address 属性的值。

遍历集合:
假设在 JSP 页面中有以下集合对象:

jsp
Copy
<%
    List<String> colors = new ArrayList<>();
    colors.add("Red");
    colors.add("Green");
    colors.add("Blue");

    request.setAttribute("colors", colors);

    Map<String, String> countryCodes = new HashMap<>();
    countryCodes.put("US", "United States");
    countryCodes.put("CA", "Canada");
    countryCodes.put("GB", "United Kingdom");

    request.setAttribute("countryCodes", countryCodes);
%>
您可以使用 EL 表达式遍历这些集合:

jsp
Copy
Colors:
<ul>
    <c:forEach items="${colors}" var="color">
        <li>${color}</li>
    </c:forEach>
</ul>

Country Codes:
<table>
    <c:forEach items="${countryCodes}" var="entry">
        <tr>
            <td>${entry.key}</td>
            <td>${entry.value}</td>
        </tr>
    </c:forEach>
</table>
上述 EL 表达式使用 <c:forEach> 标签循环遍历集合,并输出集合中的元素。

使用 EL 函数:
EL 提供了一些内置函数,如字符串处理、数学运算、日期处理等。例如,使用 fn:length 函数获取字符串的长度:

jsp
Copy
<%
    String message = "Hello, world!";
    pageContext.setAttribute("message", message);
%>

Message Length: ${fn:length(message)}
上述 EL 表达式使用 fn:length 函数获取字符串变量 message 的长度,并输出结果。

这些示例演示了 EL 表达式在 JSP 页面中的常见用法。您可以根据需要使用 EL 访问变量、属性、集合和调用函数来操作数据和展示内容。EL 提供了灵活且简洁的语法,使得数据处理更加方便和可读。

ChatGPT
ChatGPT

Poe

请注意,由于当前环境的限制,我无法在这个纯文本的环境中执行 JSP 代码和 EL 表达式。上述示例只是为了说明 EL 的基本语法和用法,并非可以直接在这个聊天窗口中运行的有效代码。

在实际的 JSP 页面中,您可以将这些示例代码嵌入到 <% ... %> 代码块或 <c:forEach> 等 JSTL 标签中,以便在浏览器中正确显示和执行。