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语句结合使用
<%-- EL与JSTL结合使用:遍历集合 --%>
<c:forEach var="productFor" items="${productList}">
	${productFor.name} : ${productFor.price}<br>
</c:forEach>
<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/ijiangtao/blog/1579483

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值