JavaEE之EL&JSTL

EL&JSTL

EL

EL 概述

在 JSP 开发中,为了获取 Servlet 域对象中存储的数据,经常需要书写很多 Java 代码, 这样的做法会使 SP 页面混乱,难以维护,为此,在 JSP2.0 规范中提供了 EL 表达式。EL 是 Expression Language 的缩写,它是一种简单的数据访问语言。

EL 快速使用

由于 EL 可以简化 ISP 页面的书写,因此,在 JSP 的学习中,掌握 EL 是相当重要的。要使 用 EL 表达式,首先要学习它的语法,EL 表达式的语法非常简单,都是以“${”符号开始, 以“}”符号结束的,具体格式如下:

${}

EL 使用

演示使用 EL 表达式简化 JSP 页面的书写,新建项目,编写一个用于存储用户名和密码的 Servlet

Servlet代码
public class MyServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponseresponse) throws ServletException, IOException {
        request.setAttribute("username", "lisi");
        request.setAttribute("password", "123456");
        request.getRequestDispatcher("index.jsp").forword(request,response);
    }
}
jsp页面取值

    <%--
    用户名:<%=request.getAttribute("username") %>
    密码:<%=request.getAttribute("password") %>
    --%>
    
    用户名:${username }
    密码:${password }

El语法

EL 中的标示符

每一种语言都有一套自己的语法规范,EL 表达式语言也不例外,要学会使用 EL 表达式,首 先应该熟悉它的语法。

-规范如下:
1. 不能以数字开头;
2. 不能是 EL 中的保留字,如 and、or、gt;
3. 不能是 EL 隐式对象,如 pageContext;
4. 不能包含单引号()、双引号(")、减号(-)和正斜线等特殊字符常量

EL 中的保留字

保留字就是编程语言里事先定义好并赋予了特殊含义的单词,和其他语言一样,EL 表达式 中也定义了许多保留字,这些保留字不能作为标示符
and gt true instanceof
or le false empty
not ge null div
mod

EL 表达式中的变量

EL 表达式中的变量就是一个基本的存储单元,EL 表达式可以将变量映射到一个对象上。 namenameEL使 n a m e n a m e 就 是 一 个 变 量 , E L 表 达 中 的 变 量 不 用 事 先 定 义 就 可 以 直 接 使 用 , {name }就可以访 问变量 name 的值。

EL中的常量

EL 表达式中的常量又被称为字面常量,它是不能改变的数据
- 布尔常量
- 整型常量
- 浮点数常量
- 字符串常量
- Null 常量

EL 中的运算符

点运算符(.)

EL 表达式中的点运算符,用于问 JSP 页面中某些对象的属性

${user.name }
访问 user 对象中的 name 属性

方括号运算符([])

EL 表达式中的方括号运算符与点运算符的功能相同,都用于访问 JSP 页面中某些对象的属性,当获取的属性名中包含一些特殊符号,如“-”或“?”等并非字母或数字的符号,就只能使用方括号运算符来访问该属性,其语法格式如下
user[Myname]访userMyname1. u s e r [ “ M y − n a m e ” ] 访 问 u s e r 对 象 中 的 M y − n a m e 属 性 − 点 和 方 括 号 区 别 1. 点 运 算 符 和 方 括 号 运 算 符 在 某 种 情 况 下 可 以 互 换 如 {user.name} 等价于 user[name]2.使 u s e r [ “ n a m e ” ] 2. 方 括 号 运 算 符 和 点 运 算 符 可 以 相 互 结 合 使 用 例 如 , 表 达 式 {users[0].name}可以访问集合或数组中的第一个元素的 name 属性
3. 方括号运算符还可以访问 List 集合或数组中指定索引的某个元素,
如表达式${users[0]}用于访问集合或数组中第一个元素。在这种情况下,只能使用方括号运算符而不能使用点运算符

算数运算

比较运算符

逻辑运算符

EL 表达式中的逻辑运算符用于对结果为布尔类型的表达式进行运算,运算的结果仍然为布 尔类型

empty 运算符

empty 运算符用于判断某个对象是否为 null 或””
emptyvar e m p t y v a r {empty user}

条件运算符

用于执行某种条件判断,类似于 java 中的 if-else
A?B:C A ? B : C {(1 == 2)? 3 : 4} 结果为 4

EL 隐式对象

在 EL 技术中,提供了隐式对象,EL 中的隐式对象共有 11 个
注意:PageContext、HttpServletRequest、HttpSession、ServletContext 这四个对 象可以存储数据,EL 表达式只能在这四个域中获取数据

注意:

  • pageContext 可以获取其他 10 个隐式对象
  • requestScope、sessionScope、applicationScope 是用于获取指定域的隐式对象
  • param、paramValues 用于获取请求参数的隐式对象
  • header、headerValues 用于获取 HTTP 请求消息头的隐式对象
  • cookie 用于获取 Cookie 信息的隐式对象
  • initParam 用于获取 Web 应用初始化信息的隐式对象

JSTL

JSTL概述

从 JSP11 规范开始,JSP 就支持使用自定义标签,使用自定义标签大大降低了 JSP 页面的 复杂度,同时增强了代码的重用性。为此,许多 Web 应用厂商都定制了自身应用的标签库, 然而同一功能的标签由不同的 Web 应用厂商制定可能是不同的,这就导致市面上出现了很 多功能相同的标签,令网页制作者无从选择,为了解决这个问题,Sun 公司制定了一套标准 标签库( JavaServer Pages Standard Tag Library),简称 JSTL
JSTL 虽然被称为标准标签库,而实际上这个标签库是由 5 个不同功能的标签库共同组成的。 在 JSTL 1.1 规范中,为这 5 个标签库分别指定了不同的 UR 以及建议使用的前缀,如下所 示

  • Core 是一个核心标签库,它所包含应用中通用操作的标签
  • I18N 是一个国际化/格式化标签库,包含实现 Web 应用程序的国际化和格式化标签
  • SQL 是数据库标签库,它包含用于访问数据库和对数据库中的数据进行操作的标签
  • XML 是一个操作 XML 的标签库,包含对 XML 文档中的数据进行操作的标签

JSTL 中的 Core 核心标签库

标签

Core 标签库提供了一个标签,该标签用于设置域对象属性的值,或者设置对象中用 于存储数据的 Map 对象、 JavaBean 对象属性的值。标签有 4 种语法格式

  • 语法 1:使用 value 属性设置域对象每个属性的值

  • 语法 2:标签体设置指定域中某个属性的值

标签

标签

标签用于指定多个条件选择的组合边界,它必须与和 标签一起使用。

标签


JSTL 中的 Functions 标签库

你可能感兴趣的:(Java)