el表达式与jstl标签的使用
el表达式
简介
-
el表达式的全称:Expression Language。是表达式语言
-
EL表达式的作用:
EL表达式主要是代替jsp页面中的表达式脚本在jsp页面中进行数据的输出。因为EL表达式在输出数据的时候,要比jsp的表达式脚本要简洁的多
-
EL表达式的语法格式:${表达式}。EL 表达式在输出 null 值的时候,输出的是空串。jsp 表达式脚本输出 null 值的时候,输出的是 null 字符串。
表达式搜索域数据的顺序
L 表达式主要是在 jsp 页面中输出数据。主要是输出域对象中的数据。当四个域中都有相同的 key 的数据的时候,EL 表达式会按照四个域的从小到大的顺序去进行搜索,找到就输出。
四个域从大到小的顺序为:
- pageContextValue
- requestValue
- sessionValue
- applicationValue
EL表达式获取JavaBean的数据
2.1 JavaBean规范
JavaBean 类必须是一个公共类,并将其访问属性设置为 public。
JavaBean 类必须有一个空的构造函数:类中必须有一个不带参数的公用构造器,此构造器也应该通过调用各个特性的设置方法来设置特性的缺省值。
一个JavaBean类不应有公共实例变量,类变量都为private。
持有值应该通过一组存取方法(getXxx 和 setXxx)来访问:对于每个特性,应该有一个带匹配公用 getter 和 setter 方法的专用实例变量。若是布尔值,可以用isXxx来代替getXxx。
成员变量的第二个字母最好不要大写, 像rCategory, hFilename之类,生成getter 和setter会有问题。
EL的11个隐含对象
EL 个达式中 11 个隐含对象,是 EL 表达式中自己定义的,可以直接使用。如下:
变量 | 类型 | 作用 |
---|---|---|
pageContext | PageContextImpl | 可以获取jsp中的九大隐含对象 |
pageScope | Map<String,Object> | 可以获取pageContext域中的数据 |
requestScope | Map<String,Object> | 可以获取request域中的数据 |
sessionScope | Map<String,Object> | 可以获取session域中的数据 |
applicationScope | Map<String,Object> | application域(servletContext) |
param | Map<String,Object> | ~获取请求参数的值 |
paramValues | Map<String,Object> | 可以获取请求参数的值,获取多个值的时候使用 |
header | Map<String,Object> | 可以获取请求头的信息 |
hearderValues | Map<String,Object> | 获取请求头的信息,它可以获取多个值的情况 |
cookie | Map<String,Object> | 它可以获取当前请求的cookie信息 |
initParam | Map<String,Object> | 可以获取在web.xml中配置的上下文参数 |
jsp九大隐含对象
对象 | 描述 |
---|---|
request | 与请求相关联的HttpServletRequest 对象 |
response | 与客户端响应相关联的HttpServletResponse 对象 |
out | 将输出发送到客户端的PrintWriter 对象 |
session | 与请求相关联的HttpSession 对象 |
application | 与应用程序上下文相关联的ServletContext对象 |
config | 与该页面相关联的ServletConfig 对象 |
pageContext | 封装了使用服务器特定的功能,如更高性能的JspWriter |
page | 这是一个同义词,用于调用由翻译的Servlet类定义的方法 |
Exception | exception 对象允许指定的Jsp访问异常数据 |
EL中的运算符
关系运算符
- == 或eq
- != 或 ne
- < 或 lt
- >或gt
- <= 或le
- >=或ge
逻辑运算
- && 或 and
- || 或 or
- ! 或 not
算数运算
- +
- -
- *
- /或div
- %或mod
jstl 标签
引用jstl库
下载 jakarta-taglibs-standard-1.1.2.zip 包并解压,将 jakarta-taglibs-standard-1.1.2/lib/ 下的两个 jar 文件:standard.jar 和 jstl.jar 文件拷贝到 /WEB-INF/lib/ 下。
在jsp页面中引用:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
更多jstl直接看教程吧::
https://www.runoob.com/jsp/jsp-jstl.html