JSP表达式语言(EL)使得访问存储在JavaBean中的数据变得非常简单。JSP  EL既可以用来创建算术表达式也可以用来创建逻辑表达式。在JSP  EL表达式内可以使用整数型、浮点型、字符串、常量true、false,还有null。一般的在JSP标签中指定一个属性值时,需要使用一大行代码:

    <jsp:setProperty  name="box"  property="perimeter"  value="100"  />

  JSP  EL 允许指定一个表达式来表示一个属性值:${expr}   ,其中,expr指的是表达式。在JSP EL中通用的操作符是 . 和 {}。这两个操作符允许通过内嵌的JSP对象访问各种各样的JavaBean属性。例如上面的<jsp:setProperty>标签可以使用表达式语言写成下面形式:

    <jsp:setProperty   name="box"  property="permeter"  value="${box.width*2+box.height*2}"  />

   当JSP编译器在属性中见到"${}"格式后,它湖产生代码来计算这个表达式,并且产生一个替代品来代替表达式的值。

    <jsp:text>
Box Perimeter is:${box.width*2+box.height*}
</jsp:text>

   在EL表达式中可以使用圆括号来组织表达式,想要停用对EL表达式的评估,需要使用page指令的isELIgnored的属性值设置为true :

    <%@  page  isELIgnored="true|false" %>   //默认是false,即EL表达式有效

  将isELIgnored属性值设置为true,这样在这个JSP页面EL表达式就会失效。

EL中的基础操作符

  EL表达式支持大部分Java所提供的算术和逻辑操作符:

操作符 描述
. 访问对象的一个属性或者一个映射条目
[] 访问对象的一个属性或者一个数组、链表的元素
() 组织一个子表达式以改变优先级
+
-
*
/  or  div
%   or  mod 取余
==  or  eq 测试是否相等
!=  or  ne 测试是否不等
<  or  lt 测试是否小于(less  than)
>  or  gt 测试是否大于(greater  than)
<=   or  le 测试是否小于等于
>=  or  ge 测试是否大于等于
&&  or  and 测试逻辑与
||   or  or 测试逻辑或
!   or   not 测试逻辑非
empty 测试是否空值

JSP  EL中的函数

  JSP  EL允许在表达式中使用函数。这些函数必须被定义在自定义标签库中。

    ${fn:length("Get  my  length")}

   fn:length函数在JSTL库中定义,上面的语法可以获取一个字符串的长度,要使用任何标签库的函数,都需要将这些库安装在服务器中,然后使用<taglib>标签在JSP 文件中引用这些库。

JSP EL隐含对象

  JSP EL支持下表中的隐含对象:

隐含对象 描述
pageScope page作用域
requestScope request作用域
sessionScope session作用域
applicationScope application作用域
param request对象的参数,字符串
paramValues request对象的参数,字符串集合
header HTTP信息头,字符串
headerValues HTTP信息头,字符串集合
initParam 上下文初始化参数
cookie Cookie值
pageContext 当前页面的pageContext

pageContext对象

  pageContext对象是JSP中pageContext对象的引用。通过pageContext对象可以访问request对象。例如,访问request对象传入的查询字符串:

        ${pageContext.request.queryString}

 scope对象

  pageScope,requestScope,sessionScope,applicationScope变量用来访问存储在各个作用域层次的变量。如需要访问session范围域内的test变量,可以这样用${sessionScope.tset}。

param和paramValues对象

  param和paramValues对象用来访问参数值,用来替换request.getParameter方法和request.getParameterValues方法。例如,访问一个名为order的参数,可以用EL表达式:${param.order},或者${param[order]}。param对象返回单一的字符串,而paramValues对象则返回一个字符串数组。

最新文章

  1. PHP预定义接口之 ArrayAccess
  2. 2.oracle 12c 创建-访问-关闭-删除PDB
  3. explain 执行计划详解
  4. 对于大数据量的Json解析
  5. H5 缓存机制浅析 移动端 Web 加载性能优化
  6. 在Ext JS 6中添加本地化包
  7. [转载] 【每周推荐阅读】C-Store:列式存储数据库
  8. 6.24AppCan移动开发者大会价值30万的展示机会归了谁?
  9. 【PSR规范专题(4)】PSR-3 日志接口规范
  10. 计数dp-hdu-4054-Number String
  11. Microsoft Anti-Cross Site Scripting Library V4.2 下载地址
  12. C# IL 指令集
  13. [数据共享(干货)] wcf rest 服务发布数据 以及获得数据
  14. Android如何实现定位获取
  15. bug:页面交互操作引发的问题
  16. entity framework core在独立类库下执行迁移操作
  17. Laravel 系列入门教程(四)【最适合中国人的 Laravel 教程】
  18. Google、微软、Linkedln、Uber、亚马逊等15+海外技术专家聚首2018TOP100Summit
  19. Container(容器)与 Injector(注入)
  20. pip install MySQL-python

热门文章

  1. Codeforces Round #402 (Div. 2) C
  2. 维骨力Glucosamine的最关键的几点...
  3. josephus 问题的算法(转载)
  4. Spring------自动化装配Bean(二)
  5. git分支提交管理
  6. PL/SQL笔记(1)-流程控制,循环,异常,块
  7. vue项目中常用的一些公共方法
  8. pycharm激活码 pycharm安装后激活方式 pycharm汉化包安装
  9. Three.js模型隐藏或显示
  10. Vue 2.0 右键菜单组件 Vue Context Menu