2025年EL表达式(还算详细)

EL表达式(还算详细)EL 表达式 什么是 EL 表达式 EL 表达式是 Expression Language 的缩写 全称为 Expression Language 它是一种用于在 Java Web 应用中访问和操作数据的简化表达式语言 EL 表达式最初是为 JSP 开发的 但后来也被广泛应用于其他基于 Java 的 Web 框架

大家好,我是讯享网,很高兴认识大家。

EL表达式

什么是EL表达式

EL 表达式是 Expression Language 的缩写,全称为 "Expression Language"。它是一种用于在Java Web应用中访问和操作数据的简化表达式语言。EL 表达式最初是为(JSP)开发的,但后来也被广泛应用于其他基于Java的Web框架。

EL语法格式

EL 表达式的语法格式使用${}包裹,其中${}内部可以是一个表达式或者变量名。EL 表达式主要用于在页面中获取和展示数据,执行算术运算,访问JavaBean属性,以及调用JavaBean方法等。

El表达式默认对JavaBean对象的getter方法进行调用

EL 表达式对 JavaBean 的普通属性底层默认进行调用,这是因为 EL 表达式通过 JavaBean 的 getter 方法获取属性的值。在 JavaBean 中,通常会为属性提供公开的 getter 和 setter 方法,用于获取和设置属性的值。EL 表达式使用这些 getter 方法来获取 JavaBean 属性的值。

EL 表达式的语法为 ${beanName.property},其中 beanName 是 JavaBean 的名称,property 是 JavaBean 的属性名称。在获取属性值时,EL 表达式会自动查找 beanName 对象中名为 getProperty 的方法(根据属性名进行转换),然后调用这个方法来获取属性的值。

示例:

假设有一个名为 User 的 JavaBean,其中包含属性 name 和对应的 getter 和 setter 方法:

 public class User {     private String name;     // Getter方法     public String getName() {         return name;     }     // Setter方法     public void setName(String name) {         this.name = name;     } }

讯享网

在 JSP 中,可以使用 EL 表达式获取 User 对象的 name 属性值:

讯享网jsp <!-- 假设 user 是一个 User 对象放在 request 作用域中 --> ${user.name}

上述 EL 表达式 ${user.name} 实际上会调用 user 对象的 getName() 方法,获取 name 属性的值。

总结:EL 表达式对 JavaBean 的普通属性底层默认进行调用,通过调用 JavaBean 的 getter 方法来获取属性的值。这样可以方便地在 JSP 中访问 JavaBean 的属性,而无需直接访问底层的字段。

EL表达式的运算

EL 表达式(Expression Language)支持一系列运算符,包括算术运算、关系运算、逻辑运算三元运算点运算和Java中的基本一致),主要对特有的empty运算和中括号运算进行讲解。

empty运算

EL 表达式(Expression Language)中,empty 运算符用于检查一个值是否为空或为 null。它可以用于各种类型的值,包括字符串、集合、数组和对象等。empty 运算符返回一个布尔值,如果值为空或为 null,则返回 true;否则返回 false。

示例:

假设有以下的 JavaBean 对象:

public class Person {     private String name;     private int age;     private List<String> hobbies;     // Getter 和 Setter 方法省略... }

在 JSP 页面中,我们可以使用 empty 运算符检查不同类型的值:

讯享网 jsp <%-- 定义一个 Person 对象并存储在 request 域中 --%> <jsp:useBean id="person" class="com.example.Person" /> <jsp:setProperty property="name" value="John" /> <jsp:setProperty property="age" value="30" /> <%-- 使用 empty 运算符检查各种类型的值 --%> <p>Is name empty? ${empty person.name}</p>        <%-- 输出:false --%> <p>Is age empty? ${empty person.age}</p>          <%-- 输出:false --%> <p>Is hobbies empty? ${empty person.hobbies}</p>  <%-- 输出:true,因为 hobbies 属性尚未设置 --%>
中括号运算

在 EL 表达式(Expression Language)中,中括号运算用于访问集合(数组、List、Map等)类型的数据。

1. 数组:

   对于数组,中括号运算使用索引来获取数组元素。索引从0开始,表示数组中的元素位置。

   语法:${array[index]}

   示例:

 jsp    <%-- 定义一个数组并存储在 request 域中 --%>    <% String[] fruits = {"Apple", "Banana", "Orange"}; %>    <p>First fruit: ${fruits[0]}</p>   <%-- 输出:First fruit: Apple --%>    <p>Last fruit: ${fruits[2]}</p>    <%-- 输出:Last fruit: Orange --%>

2. List:

   对于 List,中括号运算同样使用索引来获取 List 中的元素。索引从0开始,表示 List 中的项位置。

   语法:${list[index]}

   示例:

讯享网jsp    <%-- 定义一个 List 并存储在 request 域中 --%>    <% List<String> colors = new ArrayList<String>(); %>    <% colors.add("Red"); %>    <% colors.add("Green"); %>    <% colors.add("Blue"); %>    <p>First color: ${colors[0]}</p>  <%-- 输出:First color: Red --%>    <p>Last color: ${colors[2]}</p>   <%-- 输出:Last color: Blue --%>    

3. Map:

   对于 Map,中括号运算使用键(Key)来获取 Map 中的值(Value)。


讯享网

   语法:${map[key]}

   示例:

  jsp    <%-- 定义一个 Map 并存储在 request 域中 --%>    <% Map<String, Integer> scores = new HashMap<String, Integer>(); %>    <% scores.put("Alice", 85); %>    <% scores.put("Bob", 92); %>    <% scores.put("Charlie", 78); %>    <p>Alice's score: ${scores["Alice"]}</p>   <%-- 输出:Alice's score: 85 --%>    <p>Bob's score: ${scores["Bob"]}</p>       <%-- 输出:Bob's score: 92 --%>    

El表达式中11个隐含对象及其作用

在 JSP(JavaServer Pages)中,EL(Expression Language)提供了11个隐含对象,它们是一些预定义的对象,无需额外声明,可以直接在 JSP 页面中使用。以下是这11个隐含对象及其作用:

1. ${pageContext}:

   pageContext 是 JSP 页面的上下文对象,它提供了对其他隐含对象的访问,如 request、session、application 等,以及用于在 JSP 中执行页面转发和包含的方法。

2. ${pageScope}:

   pageScope 是 JSP 页面的 PageContext 属性,它用于访问当前页面范围(page scope)的属性。

3. ${requestScope}:

   requestScope 是 JSP 页面的 request 属性,它用于访问 request 范围的属性。

4. ${sessionScope}:

   sessionScope 是 JSP 页面的 session 属性,它用于访问 session 范围的属性。

5. ${applicationScope}:

   applicationScope 是 JSP 页面的 application 属性,它用于访问 application 范围的属性。

6. ${param}:

   param 用于获取请求参数的值,它可以通过请求的参数名来获取参数值。

7. ${paramValues}:

   paramValues 用于获取请求参数的多个值,比如一个参数名对应多个值的情况,它返回一个 String 数组。

8. ${header}:

   header 用于获取请求头信息的值,可以通过请求头的名称来获取请求头的值。

9. ${headerValues}:

   headerValues 用于获取请求头信息的多个值,返回一个 String 数组。

10. ${cookie}:

    cookie 用于获取客户端传递的 Cookie,可以通过 Cookie 的名称来获取 Cookie 的值。

11. ${initParam}:

    initParam 用于获取 Servlet 初始化参数的值,可以通过初始化参数的名称来获取初始化参数的值。

小讯
上一篇 2025-01-16 21:34
下一篇 2025-03-11 23:43

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/25771.html