JSP EL 简介

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
2
3
4
<%-- EL与JSTL结合使用:遍历集合 --%>
<c:forEach var="productFor" items="${productList}">
${productFor.name} : ${productFor.price}<br>
</c:forEach>
1
2
3
4
5
<script type="text/javascript">
//EL与JavaScript语句结合使用:注意,只有在JSP页面的EL表达式才能生效,js文件中的EL表达式会原样输出,并不会解析
var productName ='${productList[0].name}';
console.log(productName);
</script>
  • 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

原文链接

: https://my.oschina.net/u/3457980/blog/1579483

ijiangtao wechat
欢迎订阅我的微信公众号
打赏支持博主继续写出好作品
0%