其实深入解析:任务四——EL表达式应用指南的问题并不复杂,但是又很多的朋友都不太了解,因此呢,今天小编就来为大家分享深入解析:任务四——EL表达式应用指南的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
一、背景介绍
JSP2.0最重要的特性之一就是表达式语言EL(Expression Language)。受ECMAScript 和Xpath 表达式语言的启发,EL 还设计用于轻松编写无脚本JSP 页面。使用EL表达式,JSP页面可以轻松访问应用程序数据,而无需使用任何JSP声明、脚本和表达式,这使得JSP页面更易于编写。
2.知识分析
EL表达式的主要功能:获取数据、进行运算、获取Web开发常用的对。
获取Web开发的常用对:EL表达式定义了一些隐式对象。使用这些隐式对象,开发人员可以轻松获取常见Web对象的引用并获取这些对象中的数据。
基本语法:EL 表达式以${ 开头,以} 结尾。 EL表达式的结构:${表达式}
[]和.operators:EL表达式可以返回任何类型的值。如果EL 表达式的结果是具有属性的对象,则可以使用[] 或.运算符来访问其属性。即通过gerrer方法获取其属性。 [] 类似于.操作员。 [] 是一种更加标准化的形式,而.操作更加简单、快捷。请注意:如果propertyName 不是有效的Java 变量名称,则只能使用[] 运算符。如果对象的属性返回带有属性的对象,则可以使用[] 或.运算符访问第二个对象的属性。代码演示。
值规则:EL 表达式从左到右计算。
对于expr-a[expr-b]形式的表达式,EL表达式求值方法如下:
1)首先计算expr-a得到value-a
2)如果value-a为null,则直接返回null。
3)然后计算expr-b得到value-b
4) 如果value-b 为null,则返回null
5)如果value-a为Java.util.List,则需要进行如下处理:
一个。强制value-b 为int,如果不是,则抛出异常
b.如果value-a.get(value-b) 抛出IndexOutBoundsException,则返回null
c.返回value-a.get(value-b)的值
6) 如果value-a是java.util.Map,则会检查value-b是否是Map中的key。如果是,则返回value-a.get(value-b),如果不是,则返回null
7) 如果value-a 不是集合,则value-a 必须是JavaBean。在这种情况下,value-b 必须强制为String 类型。如果value-b 是String 类型。如果value-b是value-a的可读属性,则会调用该属性的getter方法返回该值。如果getter 方法抛出异常,则表达式无效。
(1)empty首先判断JSP范围内是否存在username变量。如果不是,则表达式返回true。 (2)empty 判断username变量是否为null或者长度为0的空字符串。如果是,则表达式返回true;如果username 是空集或空数组,则表达式也返回true。否则表达式将返回false。
隐式对象:
pageContext、param、paramValues、标头、headerValues、cookie、initParam、pageScope、requestScope、sessionScope、applicationScope
3. 常见问题
隐式对象的作用是什么?
4.解决方案
pageContext:JSP页面的上下文对象。它可以访问JSP隐式对象,如request、response、session、output、servletContext等。
param和paramValues用于获取请求参数值。
header 和headerValues 用于获取请求头。
cookie用于获取Cookie对象
initParam 用于获取Web 应用程序上下文参数的值。
在JSP中,JSP中存储的属性值往往是通过JSP的四个作用域对象来获取的:page、request、session和application。这四个对象获取值所使用的getAttribute("name")方法不是标准的getter方法,无法通过EL对象获取存储的属性值。因此,EL表达式提供了4个作用域隐式对象,用于获取4个作用域中存储的属性值,对应4个作用域中的取值方法。
5. 编码实践
6.拓展你的思维
pageContex可以获取请求对象,那么为什么它提供了param、paramValues等隐式对象来获取请求参数呢? request.getParameter、request.getParameterValues等方法不是标准的getter方法,因此提供了param等隐式对象来获取请求参数。
7. 参考文献
spring+mybatis企业应用实践
8.更多讨论
PPT链接:点击这里
视频链接:点击这里
今天的分享就到此为止。欢迎大家点赞、转发、留言、拍砖~
技能树。 IT培养学院
【深入解析:任务四——EL表达式应用指南】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
我开始学习EL表达式了,感觉还挺有意思的
有8位网友表示赞同!
想知道EL表达式的应用场景有哪些?
有18位网友表示赞同!
有没有什么好推荐的学习资源?
有13位网友表示赞同!
看文档里说EL表达式支持变量、运算、逻辑操作,是不是很难搞懂呀?
有11位网友表示赞同!
EL表达式真像是网页模板的一个工具吧!
有7位网友表示赞同!
我之前遇到过一些需要动态渲染内容的情况,这好像可以使用EL表达式来解决呢。
有6位网友表示赞同!
感觉学习完EL表达式后我可以写更精妙的JSP页面了!
有10位网友表示赞同!
有人能告诉我哪些常用的EL表达式语法吗?
有9位网友表示赞同!
我刚开始入门,希望能找到一些简单的例子来练习。
有14位网友表示赞同!
EL表达式这种技术真的还挺重要的...
有14位网友表示赞同!
想知道EL表达式在不同框架中使用的方法是否一样?
有11位网友表示赞同!
听说EL表达式语法很简洁易懂,准备好好学一学
有14位网友表示赞同!
有没有人可以分享一下自己学习EL表达式的经验?
有10位网友表示赞同!
感觉EL表达式对于理解web开发的原理很有帮助呢
有19位网友表示赞同!
我现在还在琢磨EL表达式里面的条件操作
有13位网友表示赞同!
这个任务四正好是需要用到我之前学过的东西,挺好!
有6位网友表示赞同!
期待学习完了以后能写出更复杂的模板代码!
有11位网友表示赞同!
"EL表达式" 这三个字就听起来有点高深啊!
有15位网友表示赞同!
学习完之后就可以轻松搞定一些前后的逻辑操作了吧?
有11位网友表示赞同!