1、SpringMVC与MyBatis企业开发实战 第3章 EL和JSTL本章主要内容 学完本章后,能够掌握以下内容:认识EL-Express Language 表达式语言基本运算符数据访问认识JSTL核心标签库函数标签库简介什么是表达式语言q EL 全名为 Expression Language,原本是 JSTL 1.0(JavaServer Pages Standard Tag Library)为方便存取数据所自定义的语言,后来成了 JSP 标准的一部分,如今 EL 已经是一项成熟、标准的技术qEL 的中文名称为表达式语言,很显然,和表达式应该具有一些联系。是典型的表达式,其用于将变量显示在客
2、户端;同理,和其作用相同。EL 具有与表达式相同的输出的功能,另外其还具有简单的运算符、访问对象、简单的JavaBean 访问、简单的集合访问功能什么是表达式语言表达式语言基本语法qEL 语法q$sessionScope.user.sex q 上述 EL 范例的意思是:从 session 的范围中,取得用户的性别。显然,使用了 EL,需要编写输出信息的代码时,代码量少了,工作的效率自然会提高。q 综上所述,EL 最基本的语法结构是:$Expression 基本运算符-和运算符qEL 提供了两种实现对相应数据存取的运算符:.(点操作)和操作q$sessionScope.user.sex等价于 q
3、 String str=sex;$sessionScope.userstr基本运算符以下两种情况.和 运算符不能互换当要存取的数据的名称中包含一些特殊字符(即非字母或数字符号)时,只能使用 运算符$sessionScope.useruser-sex 不能写成$sessionScope.user.user-sex 当动态取值时,只能使用,例如:$sessionScope.userparam 算术运算符q EL 中常见的运算符关系运算符q EL 的关系运算符逻辑运算符q EL 运算中的逻辑运算符其他运算符qEL 运算中还有其他常用的运算符:empty 运算符。基本语法如下:$empty A emp
4、ty 运算符的规则是:如果 A 为 null 时,返回 true;如果 A 不存在时,返回 true;如果 A 为空字符串时,返回 true;如果 A 为空数组时,返回 true;否则,返回 falseq 条件运算符。基本语法如下:$A?B:C 上面语法的意思是,如果 A 为真的话,则整个表达式的值为 B 的值,否则就是 C 的值数据访问q 对象的作用域(对照jsp内置对象的4个范围)javaBeanq访问 JavaBean使用 EL 表达式访问 JavaBean,基本语法如下$bean.property 访问集合 使用 EL 表达式来获取集合数据,其基本语法如下:$collectionele
5、mentName 其他隐含对象q 常见的其他的隐含对象其他隐含对象q常用的q param 对象获得参数。如:到达 paramExample2.jsp 页面 param.mq cookie 对象获得值。如:$cookie.account.value 以下开始介绍JSTLq 以上就是EL的主要内容,下面开始介绍JSTL认识 JSTLq JSTL 是标准的已制定好的标签库,可以应用于各种领域,如:基本输入输出、流程控制、循环、XML 文件剖析、数据库查询及国际化和文字格式标准化等应用认识 JSTLq JSTL 所提供的标签库主要分为五大类认识 JSTLq使用 JSTL 必须使用 taglib 指令,
6、taglib 指令的作用是声明 JSP 文件使用的标签库,同时引入该标签库,并指定标签的前缀。以声明核心标签库 core 为例,其基本语法如下:核心标签库q 核心标签库分类用核心标签进行基本数据操作q用核心标签库基本数据操作标签q 标签主要用来显示数据的内容,就像是 一样,其基本语法格式 q 标签用于对变量或 JavaBean 中的变量属性赋值。标签中包含以下的属性:value、target、property、var 以及 scope。如:用核心标签进行基本数据操作q 标签用于删除存在于 scope 中的变量。标签中包含两个属性:var 以及 scope,分别表示需要删除的变量名以及变量的作用
7、范围。如下代码:用核心标签进行流程控制 q标签用于简单的条件语句。其基本语法如下:用核心标签进行流程控制 q、和这三个标签通常会一起使用,它们用于实现复杂条件判断语句,类似if-elseif的条件语句。它们的基本用法如下:体 用核心标签进行流程控制 q为循环控制标签,功能是将集合(Collection)中的成员顺序浏览一遍,在实际 应用开发中,其使用频率最高。基本语法如下:体 用核心标签进行流程控制 q 标签是用来浏览字符串中所有的成员,其成员是由分隔符 delims 所分隔 的。其基本语法如下:体 函数标签库简介q 函数标签库分类函数标签库简介q函数标签库的基本使用$fn:length(对象
8、)$fn:contains(源字符串,子字符串)$fn:containsIgnoreCase(源字符串,子字符串)函数标签库简介q 函数标签库的基本使用$fn:startsWith(源字符串,指定字符串)$fn:endsWith(源字符串,指定字符串)$fn:escapeXml(特殊字符)函数标签库简介q 函数标签库的基本使用$fn:indexOf(源字符串,指定字符串):$fn:join(数组,分隔符)$fn:replace(源字符串,被替换字符串,替换字符串)函数标签库简介q 函数标签库的基本使用$fn:split(源字符串,分隔符)$fn:substring(源字符串,起始位置,结束位置)$fn:substringAfter(源字符串,子字符串)函数标签库简介q 函数标签库的基本使用$fn:substringBefore(源字符串,子字符串)$fn:toLowerCase(源字符串)$fn:toUpperCase(源字符串)$fn:trim(源字符串)本章总结q EL 中的基本语法q EL 基本运算符qEL 中的数据访问和隐含对象qJSTLq标签库中的常用标签q上机习题