EL(Expression Language) 是为了使JSP写起来更加简单。表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让Jsp的代码更加简化。
The Java Unified Expression Language is a special purpose programming language mostly used in Java web applications for embedding expressions into web pages. The Java specification writers and expert groups of the Java web-tier technologies have worked on a unified expression language which was first included in the JSP 2.1 specification (JSR-245), and later specified by itself in JSR-341, part of Java EE 7.
——Wikipedia
EL基本用法
语法结构
${expression}
[ ]与.运算符
EL 提供“.“和“[ ]“两种运算符来存取数据。
当要存取的属性名称中包含一些特殊字符,如 . 或 - 等并非字母或数字的符号,就一定要使用“[ ]“。
例如:${ user. My-Name}应当改为${user[“My-Name”]}
如果要动态取值时,就可以用“[ ]“来做,例如:
${sessionScope.user[data]}中data 是一个变量
变量
EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。
因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。
假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传””。
EL的特点
EL除了具有语法简单、使用方便的特点,还有以下特点:
EL可以与JSTL结合使用,也可以也JavaScript语句结合使用
1 | <%-- EL与JSTL结合使用:遍历集合 --%> |
1 | <script type="text/javascript"> |
EL中会自动进行类型转换,如果想通过EL输入两个字符串数值(如n1和n2)的和,可以直接通过“+”进行连接(如${n1+n2})
EL不仅可以访问一般变量,还可以访问JavaBean中的属性及嵌套属性和集合对象
EL中可以执行算术运算、逻辑运算、关系运算和条件运算等操作
EL中可以获取命名空间(PageContext对象,他是页面中所有其他内置对象的最大范围的继承对象,通过他可以访问其他内置对象)
在EL中可以访问JSP的作用域(request、session、application、page)
-在使用EL进行除法运算的时候,如果0作为除数,则返回无穷大Infinity,而不是返回错误
- 扩展函数可以与Java类的静态方法进行映射
相关链接
:https://github.com/ijiangtao/tao-jsp/blob/master/src/main/webapp/pages/product/product.jsp