Java课题笔记~ EL

本文讨论了JSP脚本的局限性和EL(ExpressionLanguage)在简化输出、提高代码可读性和维护性方面的作用。EL通过定义隐含对象和操作符,减少了Java代码嵌入,支持运算符处理和不同作用域的访问。
摘要由CSDN通过智能技术生成

1.EL

(1).JSP脚本的缺点

使用JSP脚本可以实现页面输出显示,那为什么还需要使用EL简化输出呢?

这是因为单纯使用JSP脚本与HTML标签混合,实现输出显示的方式存在一些弊端,归纳如下:

  • 代码结构混乱,可读性差

  • 脚本与HTML标签混合,容易导致错误

  • 代码不易维护

核心作用:

减少jsp中的java代码

[注意:el只能用在jsp中]

(2).EL表达式

(1)EL表达式

EL是Expression Language的缩写,它定义了一系列的隐含对象和操作符,使开发人员能够很方便地访问页面内容,以及不同作用域内的对象,而无须在JSP中嵌入Java代码,从而使得页面结构更加清晰,代码可读性更高,也更加便于维护。

(2)EL表达式的语法

语法:${EL表达式}

语法结构中包含"$"符号和”{}“括号,二者缺一不可。

使用EL表达式也非常简单,如${username}就可以实现访问变量username的值。

注意:使用EL表达式获取变量前,必须将操作的对象保存到作用域中。

此外,使用EL表达式还可以访问对象的属性,这就需要使用“.”操作符和“[ ]”操作符来完成。

  • “.”操作符

EL表达式通常由对象和属性两部分组成。因此采用与Java代码一样的方式,用“.”操作符来访问对象的属性。

例如:${news.title}可以访问news对象的title属性。

  • “[ ]”操作符

“[ ]”操作符的使用方法与“.”操作符类似,不仅可以用来访问对象的属性,还可以用于访问数组和集合。

例如:

①访问对象的属性:${news["title"]}可以访问news对象的title属性。

②访问数组:${newsList[0]}可以访问newsList数组中的第一个元素。

示例代码:

<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Date" %>
<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<html>
<head>
    <title>EL表达式</title>
</head>
<body>
<h1>EL表达式</h1>
<%
    String username = "tom";
    //将变量添加到作用域中
    request.setAttribute("username",username);
    request.setAttribute("student.name","张三");
    ArrayList list = new ArrayList();
    list.add("新冠疫情");
    list.add("俄乌战争");
    //将集合添加到作用域中
    request.setAttribute("list",list);
    //将日期对象添加到作用域中
    Date date = new Date();
    request.setAttribute("date",date);
%>
    //访问变量 <br>
    ${username}<br>
    //含有特殊字符的变量 <br>
    ${requestScope["student.name"]}<br>
    //访问集合 <br>
    ${list[1]}<br>
    //访问对象 <br>
    ${date.date}<br>
    //读取参数 (需要从地址栏传参数,例如:http://localhost:8088/ELDemo.jsp?num=1)<br>
    ${param.num}<br>
    //读取参数 (需要从地址栏传参数,例如:http://localhost:8088/ELDemo.jsp?num=1&hobby=a&hobby=b&hobby=c)<br>
    ${paramValues.hobby[2]}<br>
</body>
</html>

运行效果:

 

提示:

①使用“[ ]”操作符访问数据时,必须在属性名两侧使用双引号。

②EL表达式区分大小写。

③在使用EL表达式获取变量前,必须先将对象保存到作用域中。

表达式分类: (1) 普通表达式 (2) 读取单值(基本数据类型) (3) 读取多值(对象)

EL的隐含对象: 

 

(3).EL运算符

EL表达式支持多种运算符,这些运算符的使用方法与Java运算符非常类似。另外,在EL表达式中,为了避免一些运算符在使用时与HTML页面标签发生冲突,会采用其他符号进行替代。

 EL的运算符:

(1) 算术运算符

(2) 关系运算符

(3) 逻辑运算符

(4) Empty运算符

(5) 条件运算符

例子:${2 > 1 ? "yes" : "no" }

 

(4).EL的功能

对于EL的特点和作用,归纳总结如下:

  • 可用于获取JavaBean的属性。

  • 能够读取集合类型对象中的元素。

  • 可使用运算符进行数据处理。

  • 可屏蔽一些常见异常。

  • 可自动实现类型转换。

(5).EL表达式的作用域访问对象

JSP提供了4种作用域,分别是page、request、session和application。为了能够访问这4个作用域内的数据,EL表达式也分别提供了4种作用域访问对象来实现数据的读取。这4个作用域访问对象的比较如下:

 

当使用EL表达式访问某个属性值时,应当指定查找的范围。如果程序中未指定查找的范围,那么系统会自动按照page → request → session → application(从小到大)的顺序进行查找。

使用作用域访问对象读取属性值非常简单,只需要使用“作用域名称 .”方式即可实现。

总结:

EL从作用域/参数/信息头/初始化参数/cookie中获取数据,显示到JSP页面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肉肉肉肉肉肉~丸子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值