EL表达式的语法介绍及九大隐含对象
一、 简介
> JSP表达式 <%= %> 用于向页面中输出一个对象。
> 到JSP2.0时,在我们的页面中不允许出现 JSP表达式和 脚本片段。
> 使用EL表达式来代替JSP表达式 ,使用JSTL标签来代替JSP脚本片段。
> EL表达式用来向页面输出内容,仅仅对四个域起作用,仅仅可以在jsp页面中使用,在html页面中不可以使用!
getAttribute();//四个域对象都可以使用//作用不是接收请求参数,在使用getAttribute方法之前必须先使用setAttribute()将属性对方法域对象中;返回Object类型!
getParameter()://仅仅是request使用!用于接收请求参数【url,form表单中】;返回值String类型
二、 基本语法
> ${表达式}
> EL表达式可以从域中获取属性。
- 使用 ${属性名}
- 如果只填写一个属性名,EL表达式会自动做全域查找。
- 所谓的全域查找,就是按照pageScope requestScope sessionScope applicationScope四个域范围内分别,找到就返回属性,如果没找到什么都不返还。
- 我们还可以指定去哪个域查找
pageScope
requestScope
sessionScope
applicationScope
- 例子:
查找request中属性
${requestScope.属性名}
查找session中的属性
${sessionScope.属性名}
- 注意:EL表达式只能获取域中的属性
EL表达式不能直接调用对象的方法
- 通过EL表达式读取对象的属性时,只需要${对象.属性名}
EL表达式会自动调用对象的对应的getter方法,通过将属性名首字母大写,然后加上一个get的方法
我们只需要将方法名去掉get,并将首字母小写,如getName,只需要写成name,调用其他方法也是如此
实际上是调用了对应的方法
注意:只要有属性,就可以一直点下去,也就说对象的属性是对象的话,我们也可以通过对象的属性的属性的方式调用!
- 当读取一些名字比较特殊的属性时,这种特殊值必须要指定域,例如属性名带-,或属性名为数字:
${requestScope['属性名']}
三、 隐含对象
> EL中一共有11个内置对象。
- pageContext
类型 PageContext
它和JSP中pageContext是一个东西
作用 可以获取到JSP中其他的隐含对象
例如:可以获取项目名:
${pageContext.request.contextPath }
例如:可以作为base标签的href属性
<base href="http://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}/" />
表示设置页面的相对路径前缀为http://localhost:8080/项目名/
- pageScope
类型:Map<String,Object>
代表:page域中的属性
作用:可以获取到page域中的属性
- requestScope
类型:Map<String,Object>
代表:request域中的属性
作用:可以获取到request域中的属性
- sessionScope
类型:Map<String,Object>
代表:session域中的属性
作用:可以获取到session域中的属性
- applicatScope
类型:Map<String,Object>
代表:application域中的属性
作用:可以获取到application域中的属性
- param
类型: Map<String , String>
代表:用户发送的请求参数
作用:可以获取请求参数
用法: ${param.参数名}
- paramValues
类型:Map<String , String[]>
代表:一个请求参数对应的多个值
用法: ${paramValues.参数名[索引]}
- header
作用:可以获取到用户发送的请求头
类型:Map<String , String>
例如:获取用户的系统信息 ${header['User-Agent']}
? - headerValues
类型: Map<String , String[]>
作用:可以获取一个头的多个值
? - initParam
类型:Map<String , String>
作用:获取整个WEB应用的初始化参数
? - cookie
类型:Map<String , Cookie>
作用:用来获取Cookie
四、 运算
> 在EL中可以直接使用运算符进行运算。
> 在EL中可以使用Empty元素符:
如果值为null , empty则返回 true
如果为空串, 则返回 true
空的集合 返回true
> 所以empty元素符经常用来判断集合或者字符串是否为空
EL表达式的语法介绍及九大隐含对象的更多相关文章
- JSP——九大隐藏对象之四大域对象
你一定在你的Jsp文件中的监本片段中使用过以下九个对象的几种:out.config.page.pageContext.exception.request.response.application.se ...
- EL表达式的简单介绍
EL表达式的简单介绍 一.JSP EL语言定义 E L(ExpressionLanguage) 目的:为了使JSP写起来更加简单. 表达式语言的灵感来自于ECMAScript 和 XPath 表达式 ...
- EL表达式的语法与应用
EL(是Expression Language的缩写),使用EL对JSP输出进行优化,可以使得页面结构更加清晰,代码可读性高,也更加便于维护. EL表达式的语法: 语法:$(EL 表达式) $ 和 ...
- javaweb之jsp的九个隐含对象与基本语法
1.在页面上可以不用声明直接使用的对象称为jsp页面的隐含对象.使用<% %>编写的java代码在_jspService方法中,如下: public void _jspService(fi ...
- 在EL表达式或者Struts标签库中格式化日期对象,即将Date转换为yyyy-MM-dd格式
一.EL表达式 首先,在jsp页面引入<fmt> tags,<%@ taglib prefix="fmt" uri="http://java.sun.c ...
- javaWEB总结(12):JSP页面的九个隐含对象
前言 jsp本质上是一个servlet,而在jsp中有九个不用声明就可以使用的对象,我们叫他隐含对象.本文基于上文所写,如有需要可查看上一篇文章javaWEB总结(11):JSP简介及原理. 打开上次 ...
- Jsp的九个隐含对象
JSP的9个隐含对象(内置对象) 不需要预先声明,就可以在jsp或者表达式中随意使用 out javax.servlet.jsp.JspWriter类型,代表输出流的对象.作业域:页面的执行期. re ...
- jsp上的九个隐含对象
首先说一说件jsp的原理.jsp被认为最经典的解释是 “嵌入了java 代码的html”. 在网上查了一些资料,和我本身对jsp的认识,总结如下: jsp本质上是一个servlet,继承自 当第一次 ...
- javaweb学习总结(二十九)——EL表达式
一.EL表达式简介 EL 全名为Expression Language.EL主要作用: 1.获取数据 EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数 ...
随机推荐
- hibernate复习第(二)天
今日要点: 关联映射 多对一(Employee - Department) 一对多(Department - Employee) 一对一(Person - IdCard) 多对多(teachet - ...
- sphinx:python项目文档自动生成
Sphinx: 发音: DJ音标发音: [sfiŋks] KK音标发音: [sfɪŋks] 单词本身释义: an ancient imaginary creature with a lion's bo ...
- stl_set.h
stl_set.h // Filename: stl_set.h // Comment By: 凝霜 // E-mail: mdl2009@vip.qq.com // Blog: http://blo ...
- cocos2d-x 中 xml 文件读取
实现类 CXmlParse 啥也不说了 直接上硬货 believe yourself 一看就明白 CXmlParse.h #ifndef __C_XML_PARSE__ #define __C ...
- 批量修改mysql的表前缀
如何批量修改mysql的表前缀名称教程中将涉及两种方法修改,一种是批量修改(使用php脚步完成)一种是精确修改(使用sql查询语句完成). 方法一:使用sql语句修改mysql数据库表前缀名 首先我们 ...
- JS---script的位置
都可以,但各有千秋.放在head中:统一管理,方便维护:但浏览器会首先加载js文件,如果js文件过大,会造成页面在加载js的时候“无反应”时间过长,影响用户体验.放在body中(或放在body后):浏 ...
- spring--设置注入VS构造注入
1.在传统的程序设计中,调用亲自创建被调用者的实例,即由程序控制“对象之间的依赖关系”,这种方式的耦合度比较高:控制反转就是将由程序控制的“对象间的依赖关系”转交给Ioc容器来进行控制,被调用者的实例 ...
- javascript基础之回调函数
简单来说,回调函数:也就是将要执行的函数. 回调函数具体的定义为:函数A作为参数(函数引用)传递到另一个函数B中,并且这个函数B执行函数A.我们就说函数A叫做回调函数.如果没有名称(函数表达式),就叫 ...
- Java enum(枚举)使用详解之一
enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性,存放在 java.lang 包中. 下面是我在使用 enum 过程中的一些经验和总结,主要包括如下内容: 1. 原始 ...
- python 基础 字典 增删改查
content = {"name":"wd","pc":{"phone":111111,"age": ...