EL中的基础操作符
EL表达式支持大部分Java所提供的算术和逻辑操作符:
操作符 | 描述 |
---|---|
. | 访问一个Bean属性或者一个映射条目 |
[] | 访问一个数组或者链表的元素 |
( ) | 组织一个子表达式以改变优先级 |
+ | 加 |
- | 减或负 |
* | 乘 |
/ or div | 除 |
% or mod | 取模 |
== or eq | 测试是否相等 |
!= or ne | 测试是否不等 |
< or lt | 测试是否小于 |
> or gt | 测试是否大于 |
<= or le | 测试是否小于等于 |
>= or ge | 测试是否大于等于 |
&& or and | 测试逻辑与 |
|| or or | 测试逻辑或 |
! or not | 测试取反 |
empty | 测试是否空值 |
JSP EL隐含对象
pageContext对象
通过pageContext获取servletContext,request,response,session等对象
格式
${pageContext.request.queryString}
param和paramValues对象
param和paramValues对象用来访问参数值,通过使用request.getParameter方法和request.getParameterValues方法
${param.order},或者${param["order"]}。
header和headerValues对象
header和headerValues对象用来访问信息头,通过使用 request.getHeader方法和request.getHeaders方法
${header.user-agent},或者${header["user-agent"]}。
获取隐式作用域对象中保存的属性
${user.name}按照pageScope,requestScope,sessionScope,applicationScope的顺序查找
JSP EL中的函数
定义函数
定义一个类,创建静态方法(函数)
在WEB-INF/tlds下创建tld文件
引用并调用
${ns:func(param1, param2, ...)}
ns指的是命名空间(namespace),func指的是函数的名称,param1指的是第一个参数,param2指的是第二个参数,以此类推
<taglib> <tlib-version>1.0</tlib-version> <jsp-version>1.2</jsp-version> <uri>http://com.tanlei.functions/myfun</uri> <function> <name>hi</name> <function-class>com.tanlei.fun.myfun</function-class> <function-signature> java.lang.String hi(java.lang.String) </function-signature> </function> </taglib>
<%@ taglib perfix="fun" uri="http://com.tanlei.functions/myfun" %>
${fun:hi("Get my length")}