1、表达式语言简介

表达式语言是在JSP2.0中增加的内容,使用表达式语言可以方便的访问对象的属性,提交的参数,或者进行各种运算,而且在输出内容为null的时候,自动用空字符串表示""

2、表达式语言的内置对象


表达式内置对象 对象说明
1 pageContext javax.servlet.jsp.PageContext对象
2 pageScope 从page属性范围查找输出属性
3 requestScope 从request属性范围查找输出属性
4 sessionScope 从session属性范围查找输出属性
5 applicationScope 从application属性范围查找输出属性
6 param 接收传递到本页面的参数
7 paramValues 接收传递到本页面的一组参数
8 header 取得一个头信息
9 headerValues 取得一组头信息
10 cookie 取出cookie中的数据
11 initParam 取得配置初始化参数

3、4中属性范围


范例 用法说明
pageScope ${pageScope.属性} 取出page范围的属性内容
requestScope ${requestScope.属性} 取出request范围的属性内容
sessionScope ${requestScope.属性} 取出session范围的属性内容
applicationScope ${applicationScope.属性} 取出application范围的属性内容

4、调用内置对象操作,大多是调用getter和setter方法,采用的是反射机制例如

IP地址:${pageContext.request.remoteAddr}

SESSION ID:${pageContext.session.id}

是否是新session:${pageContext.session.new}

5、接收请求参数

${param.参数名称}

如果是接收一组参数,则用${paramValues.参数名称},直接用下标访问${paramValues.inst[i]},表示接收地i+1个参数

6、表达式的集合操作

一般的集合格式为${集合对象[i]},表示接收集合中的第i+1个参数,例如${list[0]}

map的集合操作既可以用${集合对象.键}也可以${集合对象["键"]},例如${map.name}或者${map["name"]}都表示输出map对象的name属性内容

7、运算符


描述 范例 结果
+ 加法操作 ${20 + 30} 50
- 减法操作 ${20 - 30} -10
* 乘法操作 ${20 * 30} 600
/或div 除法操作 ${20 / 30}/ ${20 div 30} 0.666
%或mod 取摸操作 ${20 % 30}/ ${20 mod 30} 20



描述 范例 结果
== / eq 等于 ${20 == 30} / ${20 eq 30} false
!= / ne 不等于 ${20 != 30} / ${20 ne 30} true
<  / lt 小于 ${20 < 30} / ${20 lt 30} true
>  / gt 大于 ${20 > 30} / ${20 gt 30} false
<= / le 小于等于 ${20 <= 30} / ${20 le 30} true
>= / ge 大于等于 ${20 >= 30} / ${20 ge 30} false

8、逻辑运算符

逻辑运算符 描述 范例 结果
&& / and ${ true && false} / ${true and false} false
|| / or ${ true || false} / ${true or false} true
!  / not 非操作(取反) ${ !true} / ${not true} false

9、其他运算法

其他运算符 描述 范例 结果
empty 判断是否为null ${empty info} true
?: 三木运算 ${ 10 > 20?"大于":"小于"} 小于
() 括号运算符 ${10 * (20 + 30)} 500