170819-关于EL表达式的知识点

摘要:
˃使用EL表达式来代替JSP表达式,使用JSTL标签来代替JSP脚本片段。用于接收请求参数;返回值String类型[2]基本语法˃${表达式}˃EL表达式可以从域中获取属性。-使用${属性名}-如果只填写一个属性名,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表达式的知识点》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇windows批处理学习(for和字符串)---03程序集定位加载相关下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【学习】026 Zookeeper

什么Zookeeper Zookeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护(Group Maintenance)等,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKe...

C#反射动态调用dll中的方法,并返回结果[转]

最近在看工厂开发模式,发现用到了反射,之前只听说过也没怎么用过;所以花了点时间重新温习了一遍; 反射的作用是动态的加载某个dll(程序集),并执行该程序集中的某个方法,并返回结果;当然也可以给该方法传递参数 namespace assembly_name { public class assembly_class {...

java责任链模式

简单解释:简单来说就是该设计模式用于对某个对象或者请求进行一系列的处理,这些处理逻辑正好组成一个链条 传统实现 假设这样的场景:传入了一段内容,需要对这段文本进行加工;比如过滤敏感词、错别字修改、最后署上版权等操作。 常见的写法如下: public class Main { public static void main(String[] args) {...

java 截取小时 时间段,一半个小时为单位

/** * 截取小时 时间段,一半个小时为单位 * * @param startTime 06:00 格式强制 **:** * @param endTime 18:00 格式强制 **:** * @return */ public static List<String> get...

干货分享:ASP.NET CORE(C#)与Spring Boot MVC(JAVA)异曲同工的编程方式总结

我(梦在旅途,http://zuowj.cnblogs.com; http://www.zuowenjun.cn)最近发表的一篇文章《.NET CORE与Spring Boot编写控制台程序应有的优雅姿势》看到都上48小时阅读排行榜(当然之前发表的文章也有哦!),说明关注.NET CORE及Spring Boot的人很多,也是目前的主流方向,于是我便决定系...

关于map 容器insert顺序

  今天测试我的节点,maya一次次死掉,一点一点的打印测试,良久才知:我想当然的将插入map的顺序,作为我执行的顺序直接遍历,打印数据显示,map有自动将键值排序的功能,比如以字符串为例,会按照a、b、c....顺序排好。    而且对于map,如果一个元素key不存在,但是直接map[key],那么map的size就增加1,我感觉有点儿相当于inser...