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 标签中,以便在浏览器中正确显示和执行。