JSP的EL表达式的使用详解

一、什么是EL表达式

1.EL表达式的简介

El表达式提供了获取对象以及属性的简单方法


2.对比JSP写法和EL表达式写法

JSP写法:<%=session.getAttribute("name")%>

El表达式写法:${sessionScope.name}

注意点:

El表达式写在JSP的HTML代码块中,而不能写在<%%>之间

二、EL表达式的基本语法

1.EL表达式的格式:

用美元符号$定界,内容包括在华括弧"{}"中;
在这里插入图片描述
EL表达式提供了获取对象以及属性的简单方法,某些情况下EL表达式完全可以替代JSP脚本或者JSP的行为;

2.EL表达式兼容性设置

  • 解决EL表达式无法使用的问题:
    在默认情况下,Servlet 2.3/JSP 1.2是不支持EL表达式的,而Servlet 2.4 /JSP 2.0支持。
  • 第一种修改web.xml文件:
<web-app version="2.4"  
xmlns="http://java.sun.com/xml/ns/javaee"  
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  
http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd"> 
  • 第二种设置某个jsp页面使用el表达式:需要在jsp页面加上
<%@ page isELIgnored="false"%>  
  • 第三种web.xml文件中加上下列代码,每个jsp页面都可以使用:
<jsp-config>  
  <jsp-property-group>  
    <url-pattern>*.jsp</url-pattern>  
    <el-ignored>false</el-ignored>  
  </jsp-property-group>  
</jsp-config> 

3.EL表达式中的".“和”[]"的用法

  • EL表达式提供".“和”[]"两种运算符来存取数据。
  • 通常情况下两者是通用的:
${user.name}
${user[“name”]}
  • "[]"还可以用来对集合元素进行定位:
${booklist[0].price}
  • 一下两种情况必须使用"[]":
    • 1.包含特殊符号:
      ${user.first-name}错误写法
      ${user[“first-name”]}正确写法
    • 2.通过变量动态取值:
      ${user[param]}

三、EL表达式的变量

EL存取变量数据的方法很简单,例如:${username}它的意思是取出某一个范围中名称为username的变量。

1.JSP内置对象和EL表达式的对应图

JSP内置对象 EL名称
Page PageScope
Request RequestScope
Session SessionScope
Application ApplicationScope

2.EL表达式的查找顺序:

在这里插入图片描述

即是范围优先级由高到低依次是:
Page、Request、Session和Application

示例:
在这里插入图片描述
在这里插入图片描述


3.EL实现取出param中的值

在这里插入图片描述

在这里插入图片描述


EL实现取出request、session和application中的值

在这里插入图片描述

在这里插入图片描述


4.EL的隐式对象(重点)

隐含对象 描述
pageScope page作用域
requestScope request作用域
sessionScope session作用域
applicationScope application作用域
param Request对象的参数,字符串
paramValues Request对象的参数,字符串集合
header HTTP信息头,字符串
headerValues HTTP信息头,字符串集合
initParam 上下文初始化参数
cookie Cookie值
pageContext 当前页面的pageContext

与输入相关的隐含对象有两个:param和paramValues,它们是EL中比较特殊的隐含对象。

  • 例如我们要取得用户的请求参数时,可以利用下列方法:
    • request.getParamster(String name)
    • request.getParamsterValues(String name)
  • 在EL中则可以使用param和paramValues两者来取得数据。
    • ${param.name}
    • ${paramValues.name}

四、EL表达式的运算符

1.EL表达式运算符有哪些

类别 运算符
算术运算符 +、-、*、/ 或 div、%或 mod
关系运算符 = = 或 eq、!= 或 ne 、< 或 It、>或 gt、<=或le、>= 或 ge
逻辑运算符 &&或and、
其他运算符 Empty运算符、条件运算符、()运算符

2.EL最常用的表达式

  • 为空判断:${empty param.name}
  • 三元运算:${A?B:C}
  • 算法运算:${A*(B+C)}

3.算法运算

在这里插入图片描述


4.关系运算

在这里插入图片描述


5.逻辑运算和其他运算

在这里插入图片描述


五、EL表达式的自动类型转换以及实体属性取字段值

1.自动类型转换

  • 在JSP代码块写法中要取得文本框的输入,我们需要做类型转换
    在这里插入图片描述

  • EL会自动类型转换,我们只需要这样写

在这里插入图片描述


2.获取实体类的属性字段值

在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐