170819-关于EL表达式的知识点
1 .EL表达式
[1] 简介
> JSP表达式 <%= %> 用于向页面中输出一个对象。
> 到JSP2.0时,在我们的页面中不允许出现 JSP表达式和 脚本片段。
> 使用EL表达式来代替JSP表达式 ,使用JSTL标签来代替JSP脚本片段。
> EL表达式用来向页面输出内容
getAttribute();//四个域对象都可以使用//作用不是接收请求参数,在使用getAttribute方法之前必须先使用setAttribute()将属性对方法域对象中;返回Object类型!
getParameter()://仅仅是request使用!用于接收请求参数【url,form表单中】;返回值String类型
[2] 基本语法
> ${表达式}
> EL表达式可以从域中获取属性。
- 使用 ${属性名}
- 如果只填写一个属性名,EL表达式会自动做全域查找。
- 所谓的全域查找,就是按照page request session application四个域范围内分别,找到就返回属性,如果没找到什么都不返还。
- 我们还可以指定去哪个域查找 pageScope requestScope sessionScope applicationScope
- 例子: 查找request中属性 ${requestScope.属性名} 查找session中的属性 ${sessionScope.属性名}
- 注意:EL表达式只能获取域中的属性 EL表达式不能直接调用对象的方法
- 通过EL表达式读取对象的属性时,只需要${对象.属性名} EL表达式会自动调用对象的对应的getter方法,通过将属性名首字母大写,然后加上个get 注意:只要有属性,就可以一直点下去,也就说对象的属性是对象的话,我们也可以通过对象的属性的属性的方式调用!
- 当读取一些名字比较特殊的属性时,这种特殊值必须要指定域,例如属性名带-: ${requestScope['属性名']}
[3] 隐含对象
> EL中一共有11个内置对象。
- pageContext 类型 PageContext 它和JSP中pageContext是一个东西 作用 可以获取到JSP中其他的隐含对象 例如:可以获取项目名: ${pageContext.request.contextPath }
- 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
[4] 运算
> 在EL中可以直接使用运算符进行运算。
> 在EL中可以使用Empty元素符: 如果值为null , empty则返回 true 如果为空串, 则返回 true 空的集合 返回true
> 所以empty元素符经常用来判断集合或者字符串是否为空
170819-关于EL表达式的知识点的更多相关文章
- jsp与El,jstl知识点总结归纳
jsp与El,jstl知识点总结归纳 jsp部分 一.jsp的三大指令 page ,include,taglib 1.jsp中的page指令 <% page %>-设置jsp 例如: &l ...
- [烧脑时刻]EL表达式1分钟完事
一天,程序员A问我,我们比比谁的知识点多,反应快.我回答:那就看谁最快用EL表达式的显示在页面上吧. 话不多说,计时开始. 项目的结构如上,大概就是一个Family的JavaBean,一个jsp页面, ...
- 一、jsp和Servlet基础理论及jstl和EL表达式用法
1.题外话:使用JSP有近一年半的时间了,但是开发量不大.昨天部门突然让做个读取EXCLE文件,然后在前台页面进行展示.并通过点击查看按钮可以对每条明细记录进行跳转后进行详情查看,并按照页面原型进行页 ...
- 12 Servlet_04 Servlet增删改查 静态页面与动态页面 EL表达式 table表格的一些样式
今天学习了servlet的增删改查: 存储数据 setAttribute(String name,Object obj );获取数据 getAttribute(String name);删除数据 re ...
- jsp页面无法识别el表达式的解决方案
今天在写一个springmvc的小demo时,碰到一个问题,在jsp页面中书写为${user.username}的表达式语言,在浏览器页面中仍然显示为${user.username},说明jsp根本不 ...
- El表达式的关系运算符
El表达式的关系运算符: == 对应 eq != 对应 ne > 对应 gt < 对应 It
- java web学习总结(三十一) -------------------EL表达式
一.EL表达式简介 EL 全名为Expression Language.EL主要作用: 1.获取数据 EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数 ...
- EL表达式的算术运算
一个例子--乘法运算 ${book.bookCount * book.bookPrice } 两个不同对象的EL表达式的算术运算同理 ${student.studentNum * book.bookP ...
- EL表达式杂项
1.<%@ page isELIgnored="false" %> 是否忽略EL表达式,如果值为ture,那么 ${..}这样的会直接原样输出,不会进行EL表达式计算 ...
随机推荐
- Map m=new HashMap()
Map<String,String> m=new HashMap<String,String>() 等于 HashMap<String,String> hashMa ...
- Linux操作系统(六)_文件系统结构
linux只有一个文件树,整个文件系统是以一个树根"/"为起点的 所有的文件和外部设备都以文件的形式挂在上面,linux发行版本的根目录大都是以下结构: /bin /sbin /b ...
- 本地SVN服务器的搭建(WINDOWS环境)
1.下载安装 VISUALSVN SERVER 1.1下载地址:https://www.visualsvn.com/server/download/ 1.2下载完成后,双击安装. 2.下载安装 Tor ...
- AspNetCore使用MySQL
既然NetCore开源,那么也使用开源的MySQL的数据库呢?当然NetCore不止单单配MSSQL数据库而已.今天我来讲解NetCore怎么使用MySQL进行开发. 首先新建一个NetCore项目 ...
- js中对象的属性名和属性值
代码 /** * 对象的属性名 * - 对象的属性名不强制遵循标识符的命名规范,可以是任意的名字,但在开发中 * 尽量遵循标识符的命名规范 */ // 创建对象obj1 var obj1 = new ...
- HTML替换元素,非替换元素和控制元素
替换元素:元素内容由标签的属性来设置,标签其实就是一个占位符.替换元素因为元素内容来自外部资源,所以这些标签大多具有src,指明要引入的资源路径,所以大多仅需要一个标签就可以.例如:<link ...
- [书接上一回]在Oracle Enterprise Linux (v5.7) 中安装DB - (3/4)
安装p10404530_112030_Linux-x86-64_6of7.zip解压下的example. 修改软件路径,为dbhome_1. 安装好数据,则可以进行快照操作! 删除安装文件. 输入db ...
- 第四讲 自定义Realm来实现身份认证
1.jdbcReam已经实现了从数据库中获取用户的验证信息,但是jdbcRealm灵活性太差.如果要实现自己的一些特殊应用时,将不能支持.这时,可以通过自定义Realm来实现身份的认证功能. 2.Re ...
- openstack stein部署手册 8. neutron-api
# 建立数据库用户及权限 create database neutron; grant all privileges on neutron.* to neutron@'localhost' ident ...
- 比较两个Sql数据库是否相同
1.打开VS20122.SQL→架构比较→新建架构比较3.在源和目标上分别填上两个待比较的数据库的信息4.点击比较,不一会儿,系统就会列出两个数据库的差异了.