日期:2014-05-16  浏览次数:20635 次

jsp课程(5)---EL表达式

EL表达式

JSP表达式语言(Expression Language),简称EL,最初定义在JSTL1.0规范中,直到JSP2.0之后,EL表达式才正式成为JSP规范中的一部分。EL为存取变量、表达式运算和读取内置对象等内容提供了新的操作方式。
EL表达式的目的是为了使JSP页面编写起来更简单

EL表达式概述

EL表达式是为了便于获取数据而定义的一种语言,JSP 2.0之后才成为一种标准。下面的示例是一个简单的EL表达式:
<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
  ${stuno + 1} <br>
</body>
</html>

这个示例将在JSP页面显示为“1”。EL表达式必须以“${XXX}”来表示,其中“XXX”部分就是具体表达式内容,“${}”将这个表达式内容包含在其中,作为EL表达式的定义。
这里只是展示EL表达式的基本用法,访问此页面的效果如下图所示:

 EL表达式的基本语法

EL表达式的出现让Web的显示层发生了大的变革,EL表达式用于获取数据,在JSP 2.0之后成为一种标准,是由JSP 标准标签库专家组和JSP 2.0 专家组开发。

在JSP页面中使用的形式,通知JSP引擎调用pageContext.findAttribute()方法,以标识符为关键字从各个域对象中获取对象。如果域对象中不存在标识符所对应的对象,则返回结果为“”(注意,不是null)

语法结构
JSP EL用于以下情形:
1.静态文本
2.标准标签和自定义标签(可以作为元素属性的值,也可以在自定义或者 标准动作元素的内容中使用)
3.EL不能在脚本元素中使用

 []与.运算符
1.EL提供(.)和([])两种运算符来存取数据,即使用点运算符(.)和方括号运算符([])。
点运算符和方括号运算符可以实现某种程度的互换,如${student.name}等价于${student [“name”]}。
2.当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号时,就一定要使用[]。例如${student.name }应当改为${student[“name”] }。
3.如果要动态取值,就可以用[]来做,而.无法做到动态取值。例如${sessionScope.student[data]}中data是一个变量。

变量

EL存取变量数据的方法很简单,例如${username}。它的意思是取出某一范围中名称为username的变量。
属性范围在EL中的名称如下表所示:


文字常量

一个EL表达式包含变量、文字常量、操作符。文字常量主要包括字符串、数字和布尔值、还有NULL,其中
字符串是由任何由单引号或双引号引起来的一串字符。
数字常量包括整型、浮点型,整型表示十进制、十六进制和八进制类型的值,浮点型与Java类似,可以包含任何正的或者负的浮点数。
布尔型包括true和false。

${true} ${10} ${10.5f} ${“hello”} ${null}

操作符

算术运算符
算术运算符主要有平时常用的“+”、“-”、“*”、“/”、“%” 。

实例:在静态文本中使用EL语言
10+5=${10+5}<br>
10/5=${10/5}<br>
10*5=${10*5}<br>
10%5=${10%5}<br>
true and false=${true && false}<br>
true or false=${true || false}<br>
5>6=${5>6}<br>
5==6=${5==6}<br>

结果如下:



关系运算符
关系运算符主要有“==”、“!=”、“<”、“>”、“<=”、“>=”

实例:关系表达式

逻辑运算符
逻辑运算符主要有“&&”、“||”、“!”


实例:逻辑运算符的使用

验证运算符“empty”与条件运算符“?:”