JSTL-EL表达式
一个EL表达式包含变量和操作符。任何存储在某个JSP作用范围(如:page、 request、session、application)的bean能被作为一个EL变量来使用。另外,EL支持以下预定义的变量:
变量名称 |
说明 |
pageScope |
一个包含所有page scope范围的变量集合 (a java.util.Map) |
requestScope |
一个包含所有request scope范围的变量集合 (a java.util.Map) |
sessionScope |
一个包含所有session scope范围的变量集合 (a java.util.Map) |
applicationScope |
一个包含所有application scope范围的变量集合 (a java.util.Map) |
param |
一个包含所有请求参数的集合 (a java.util.Map),通过每个参数对应一个String值的方式赋值 |
paramValues |
一个包含所有请求参数的集合 (a java.util.Map),通过每个参数对应一个String数组的方式赋值 |
header |
一个包含所有请求的头信息的集合, (a java.util.Map) ,通过每个头信息对应一个String值的方式赋值 |
headerValues |
一个包含所有请求的头信息的集合 (a java.util.Map) ,通过每个头信息的值都保存在一个String数组的方式赋值 |
cookie |
一个包含所有请求的 cookie集合 (a java.util.Map), 通过每一个cookie(javax.servlet.http.Cookie)对应一个cookie值的方式赋值 |
initParam |
一个包含所有应用程序初始化参数的集合(a java.util.Map) ,通过每个参数分别对应一个String值的方式赋值 |
pageContext |
一个javax.servlet.jsp.PageContext类的实例, 用来提供访问不同的请求数据 |
操作符描述了你对变量所期望的操作。如果你之前曾经使用过任何编程语言的话,在EL表达式中所使用的操作符对你来说可能看起来很熟悉。因为它们和那些在大多数语言中所支持的操作符一样。
Operator |
Description |
. |
访问一个bean属性或者 Map entry |
[] |
访问一个数组或者链表元素 |
() |
对子表达式分组,用来改变赋值顺序 |
? : |
条件语句,比如: 条件 ? ifTrue : ifFalse.如果条件为真,表达式值为前者,反之为后者 |
+ |
数学运算符,加操作 |
- |
数学运算符,减操作或者对一个值取反 |
* |
数学运算符,乘操作 |
/ or div |
数学运算符,除操作 |
% or mod |
数学运算符,模操作(取余) |
== or eq |
逻辑运算符,判断符号左右两端是否相等,如果相等返回true,否则返回false |
!= or ne |
逻辑运算符,判断符号左右两端是否不相等,如果不相等返回true,否则返回false |
< or lt |
逻辑运算符,判断符号左边是否小于右边,如果小于返回true,否则返回false |
> or gt |
逻辑运算符,判断符号左边是否大于右边,如果大于返回true,否则返回false |
<= or le |
逻辑运算符,判断符号左边是否小于或者等于右边,如果小于或者等于返回true,否则返回false |
>= or ge |
逻辑运算符,判断符号左边是否大于或者等于右边,如果大于或者等于返回true,否则返回false |
&& or and |
逻辑运算符,与操作赋。如果左右两边同为true返回true,否则返回false |
|| or or |
逻辑运算符,或操作赋。如果左右两边有任何一边为true返回true,否则返回false |
! or not |
逻辑运算符,非操作赋。如果对true取运算返回false,否则返回true |
empty |
用来对一个空变量值进行判断: null、一个空String、空数组、 空Map、没有条目的Collection集合 |
func(args) |
调用方法, func是方法名,args是参数,可以没有,或者有一个、多个参数.参数间用逗号隔开 |
一个EL表达式可以包含:数字、文本(在单引号或者双引号之间)、布尔值、null值。
因为一个EL表达式可以出现在静态文本出现的地方,因此你必须告诉JSP容器它应该被当作一个EL表达式来处理。你可以通过使用定界符来做到这一点。一个EL表达式总是以”${ }”来标记(一个“$”符号和一个左花括号,右花括号)。
除了在这个方法中使用的length()方法,JSTL1.1标签库还包含了许多其它经常使用的函数:
函数 |
描述 |
fn:contains(string, substring) |
如果参数string中包含参数substring,返回true |
fn:containsIgnoreCase(string, substring) |
如果参数string中包含参数substring(忽略大小写),返回true |
fn:endsWith(string, suffix) |
如果参数 string 以参数suffix结尾,返回true |
fn:escapeXml(string) |
将有特殊意义的XML (和HTML)转换为对应的XML character entity code,并返回 |
fn:indexOf(string, substring) |
返回参数substring在参数string中第一次出现的位置 |
fn:join(array, separator) |
将一个给定的数组array用给定的间隔符separator串在一起,组成一个新的字符串并返回。 |
fn:length(item) |
返回参数item中包含元素的数量。参数Item类型是数组、collection或者String。如果是String类型,返回值是String中的字符数。 |
fn:replace(string, before, after) |
返回一个String对象。用参数after字符串替换参数string中所有出现参数before字符串的地方,并返回替换后的结果 |
fn:split(string, separator) |
返回一个数组,以参数separator 为分割符分割参数string,分割后的每一部分就是数组的一个元素 |
fn:startsWith(string, prefix) |
如果参数string以参数prefix开头,返回true |
fn:substring(string, begin, end) |
返回参数string部分字符串, 从参数begin开始到参数end位置,包括end位置的字符 |
fn:substringAfter(string, substring) |
返回参数substring在参数string中后面的那一部分字符串 |
fn:substringBefore(string, substring) |
返回参数substring在参数string中前面的那一部分字符串 |
fn:toLowerCase(string) |
将参数string所有的字符变为小写,并将其返回 |
fn:toUpperCase(string) |
将参数string所有的字符变为大写,并将其返回 |
fn:trim(string) |
去除参数string 首尾的空格,并将其返回 |