您的位置:首页 > Web前端 > JavaScript

JSP编程专题2之JSP核心二(EL表达式,EL运算符以及除了和四个域属性空间相关的EL内置对象)

2017-10-22 14:09 351 查看
1、EL表达式:

- EL,Expression Language,表达式语言,是一种在JSP页面中获取数据的简单方式。EL表达式是从JSP2.0版本开始才引入的概念。
- EL表达式的基本语法形式很简单:在JSP页面的任何静态部分均可以通过${expression}的形式获取到指定表达式的值。
- 需要注意的是,EL只能从四大域中获取数据。其查找的顺序为:依次按照由小到大的范围从四大域中查找指定名称的属性值。(pageContext,request,session,applicaiton)

如:




a、从指定域中获取数据:
- 从pageContext依次查找到application域空间,会降低执行效率。若是某个属性确定存放在某个域属性空间中,则可以指定直接从该空间中查找。此时需要借助EL的四大与属性空间相关的内置对象:




b、访问Bean的属性:(可以多次使用点号运算符)
- EL可以通过${key.属性}的方式获取到指定对象属性值。其底层实际调用的是该对象的相应属性的get方法。
- 当然,也可以使用${key['属性']}或者是${key["属性"]}的方式获取,该方式不常用。




c、获取数组中的元素:
- EL可以通过${key的[索引]}的方式获取到指定索引的元素。不过,需要注意的是,若数组中不存在该指定索引的元素,系统不会抛出数组越界异常。




d、获取List中的元素:
- 与获取数组中的元素相同,通过${key[索引]}的方式可以获取List中的指定索引的元素。若List中不存在指定索引的元素,系统并不会抛出越界异常。(无法使用EL表达式访问Set,因为Set是无序的,没有索引的概念)




e、获取Map中的元素:EL通过${attributeName.mapKey}的方式可以获取指定Map的指定key的值:




2、EL运算符:
- EL表达式可以进行各种运算,其中常用的运算符有:



- 除了上述运算符外,还有一个非常有用的运算符empty,其用法为${empty 变量},结果为布尔值。若变量为定义,则返回值为true;若变量为String类型,且其值为空串,则返回值为true;若变量为引用类型,且其值为null,则返回值为true;若变量为集合类型,且其不包含任何元素,则返回值为true。




3、除了和四个域属性空间相关的EL内置对象:
- 就像JSP的Java代码块以及表达式块中可以使用九个内置对象一样,EL表达式中,同样也存在有内置对象,并且存在11个内置对象。常用的内置对象,除了前面使用过的四个域属性空间相关的内置对象之外,还有如下几个:

a、pageContext:
- 该pageContext与JSP内置对象中的pageContext是同一个对象。通过该对象,可以获取到request、response、session、servletContext、servletConfig等对象。注意,这些对象在EL中不是内置对象。这些对象只能够通过pageContext获取。
- 在EL中直接使用${pageContext.request}即可获取request对象。当然,其底层实际调用的是pageContext.getRequest()方法。同理,也可以通过类似方法获取到其他对象。

- 在这些获取的对象中,有一个是实际工程中最常用的:${pageContext.request.contextPath},用于获取当前项目发布到服务器中的名称,一般会用在JSP页面的路径前。



- 在EL的11个内置对象中,除了pageContext外,其他10个内置内置对象,其类型均为java.util.Map类型。

b、param:
在EL中通过${param.参数名}可获取请求中的指定参数值,其底层实际调用的是:request.getParameter(),例如,提交的请求为:



- 在JSP页面中通过如下方式,可获取到name参数的值为abc:




c、paramValues:
- 若提交的请求中同一参数具有多个值,则可通过${paramValues.参数名[索引]}获取到指定索引号的该参数值。例如,提交的请求为:



- 在JSP页面中通过如下方式,可获取请求中的指定参数值:




d、如果想获取web.xml中<context-param>标签中的子标签<param-value>的内容,则可通过${initParam.<param-name>标签中的内容}进行获取:



- 在JSP页面中通过如下方式获取:


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐