博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EL表达式
阅读量:6565 次
发布时间:2019-06-24

本文共 2317 字,大约阅读时间需要 7 分钟。

一 概述

1.EL

Expression Language,表达式语言,一种不同于编程语言的语言,用于访问对象或者为对象赋值,取代JSP页面中嵌套的java代码,使页面风格统一。

2.语法格式

${expression}

expression既可以是属性,也可以是字面值,还可以是算术表达式、关系表达式、逻辑表达式、条件表达式等。

3.+

在EL表达式中,“+”只能用作算术运算,不能用来连接字符串。在进行算术运算时,EL尝试将两个数据转化为数字,转化不成功则抛出异常。

二 禁用EL

低版本的JSP页面可能不支持EL,需要在页面中禁用EL,根据作用范围,禁用有3种方式:

1.禁用单个EL表达式:

\${expression};

2.禁用当前页面中的EL:

<%@ page isELIgnored="true"%>

3.禁用应用程序中全部页面或者指定页面中的EL:

*.jsp
true

三 EL表达式作用

  • 可以将字面值输出到页面。
  • 访问对象,可以访问对象中的属性、成员方法与静态方法,不可访问成员变量与静态变量。属性不存在时,输出空字符串,而不是null。
  • 可以访问作用域范围内的属性,访问顺序:page、request、session、application,由小到大。
  • 可以访问环境变量:请求参数、初始化参数、消息报头、cookie。
  • ${empty expression}:判断对象是否为空,为空返回true。
  • ${not empty expression}:表达式非空值返回true。
  • ${list[0]}:访问数组或者List集合中的元素,索引越界不会抛出异常或返回null,而是返回空字符串。
  • ${map.key}:访问map集合。
  • 支持算术运算:a+b。
  • 支持关系运算:对比两个参数的大小关系。
  • 支持逻辑运算:&& ! ||,判断事件是否成立。
  • 支持条件运算:${条件表达式?表达式1:表达式2}:条件表达式为true,执行表达式1,否则执行表达式2。
  • EL表达式可以当做普通字符串插入JavaScript代码中。

四 内置对象

1.使用规则

EL表达式在底层创建了许多对象,这些对象可以在JSP页面中直接使用。

2.页面上下文对象pageContext

  • 通过pageContext可以获取其他内置对象,如request/session/out/exception/page/application,不可以获得config。
  • 获取到其他内置对象以后,可以获取其属性,如pageContext.request.contentLength。

3.作用域范围的隐含对象

  • 包括:pageScope/requestScope/sessionScope/applicationScope。
  • 可以访问作用域范围内保存的数据,不可以访问具有getter方法的属性。

4.环境信息的隐含对象

  • param:访问请求参数。
  • paramValues:当一个请求参数包含多个值时使用,以数组存储。
  • header:用于获取HTTP请求头的值。
  • headValues:当一个请求头包含多个值时使用,以数组存储。
  • initParam:获取初始化参数的值。
  • cookie:访问Cookie对象。

五 自定义EL函数

1.自定义函数的一般步骤

  1. 创建一个类,在类中创建一个有返回值的静态方法。
  2. 编写标签库描述文件.tld,将编写好的文件放在WEB-INF目录下。

2.标签库描述文件

JSTL 1.1 functions library
JSTL functions
1.1
fn
http://java.sun.com/jsp/jstl/myFunctions
Tests if an input string contains the specified substring.
contains
org.apache.taglibs.standard.functions.Functions
boolean contains(java.lang.String, java.lang.String)

3.使用

首先在jsp页面中引入标签库:

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/myFunctions"%>

使用语法同EL相同:

${fn:functionName(arg...)}

4.作用

取代JSP页面中的java代码,使页面风格统一,更加简洁。

 

转载于:https://www.cnblogs.com/tonghun/p/EL.html

你可能感兴趣的文章
android 设置布局横屏竖屏
查看>>
ThreadLocal
查看>>
FormsAuthentication详解
查看>>
Canvas createRadialGradient API
查看>>
什么是 Delta 文件
查看>>
windows下一个,OracleServiceXXX和Oracle 关系实例
查看>>
【LeetCode】241. Different Ways to Add Parentheses
查看>>
风清杨之Oracle的安装与说明
查看>>
thinkphp查询
查看>>
Eclipse使用技巧收集
查看>>
iOS开发-Protocol协议及委托代理(Delegate)传值
查看>>
【BZOJ】1105: [POI2007]石头花园SKA
查看>>
Import语句
查看>>
thinking in object pool
查看>>
MapReduce原理与设计思想
查看>>
极速调整页面的个别不兼容
查看>>
浅谈WebService的调用<转>
查看>>
Theano学习笔记(三)——图结构
查看>>
在mysql数据库中,文章表设计有啥好的思路
查看>>
CSS-返回顶部代码
查看>>