第8章EL、STL和Aax技术 在Web应用程序中,视图层的设计技术有多种 除HTML、JSP,还有TL(JSP标准标签库)、EL表达 式语言、Ajax技术等,本章介绍EL、T和Aax技术以 及这些技术的应用。 (1)EL( Expression Language)是表达式语言,目前 已成为标准规范之一。 (2)JsTL( JSP Standard Tag Library)是开源的sP标 准标签库,已被广泛使用。 (3)Ajax( Asynchronous JavaScript and XML)是运 用 JavaScript和可扩展语言(XML)实现浏览器与服务 器通讯的一种技术
第8章 EL、JSTL和Ajax技术 在Web应用程序中,视图层的设计技术有多种, 除HTML、JSP,还有JSTL(JSP标准标签库)、EL表达 式语言、Ajax技术等,本章介绍EL、JST和Ajax技术以 及这些技术的应用。 (1)EL(Expression Language)是表达式语言,目前 已成为标准规范之一。 (2)JSTL(JSP Standard Tag Library)是开源的JSP标 准标签库,已被广泛使用。 (3)Ajax(Asynchronous JavaScript and XML)是运 用JavaScript和可扩展语言(XML)实现浏览器与服务 器通讯的一种技术
第8章EL、JSTL和Ajax技术 81表达式语言EL 8.2 STL 8.3综合案例一一使用EL和SI显示查询结果 84Ajax技术 85Ajax的应用案例 本章小结
第8章 EL、JSTL和Ajax技术 8.1 表达式语言EL 8.2 JSTL 8.3 综合案例——使用EL和JSTL显示查询结果 8.4 Ajax技术 8.5 Ajax的应用案例 本章小结
81表达式语言EL JSP页面中输出动态信息有三种方法: (1)JSP内置对象out:例如, (3)表达式语言:例如,S{ user name} 前两种方法在第4章中已经介绍,本节介绍第三种 方法。 本节主要内容: 811EL语法 812EL内部对象 813EL对 Java bean的访问
8.1 表达式语言EL JSP页面中输出动态信息有三种方法: (1)JSP内置对象out:例如, (2)JSP表达式:例如, (3)表达式语言:例如,${user.name} 前两种方法在第4章中已经介绍,本节介绍第三种 方法。 本节主要内容: 8.1.1 EL语法 8.1.2 EL内部对象 8.1.3 EL对JavaBean的访问
811EL语法 1.EL的语法形式 所有的EL都是以“S{”开始,以“}”结尾的, 语法格式: Sexpression 功能: 在页面上显示表达式 expression的值。即,获取范 围变量( Scoped variables)的值,所谓范围变量就是使 用 setAttribute(方法存到page、 request、 session、 app| cation四种范围内的对象
8.1.1 EL语法 1. EL的语法形式 所有的EL都是以“${”开始,以“}”结尾的, 语法格式: ${expression} 功能: 在页面上显示表达式expression的值。即,获取范 围变量(Scoped Variables)的值,所谓范围变量就是使 用setAttribute()方法存到page、request、session、 application四种范围内的对象
例如, 将对象user1以属性user存放在 session范围内: User user1=new User session. setAttribute " user , user1) 为了取得存到 sessIon范围内的属性名user的属性 值,通常的代码为: ser user1=(User)session. getAttribute (user" out.print(user1 getName() 而用EL,可简写为: S(sessionScope. user name) Ei fuser namel
例如, 将对象user1以属性user存放在session范围内: User user1=new User(); session.setAttribute("user",user1); 为了取得存到session范围内的属性名user的属性 值,通常的代码为: User user1=(User)session.getAttribute("user"); out.print(user1.getName()); 而用EL,可简写为: ${sessionScope.user.name} 或 ${user.name}
其中 session Scope是EL中表示作用范围的内置对象, 代表 session范围,即在 session中寻找 user name。 若不指定范围,依次在page、 request、 session、 application范围中查找。 若中途找到 user name,就返回其值,不再继续找, 但若在全部范围内没有找到,就返回nu|。 在Web程序设计中,对JSP页面常利用EL代替脚本 代码显示输出内容 EL表达式是由EL的有关的运算符构成的式子,其 运算符主要有:存取数据运算符以及表达式求值运算 符
其中sessionScope是EL中表示作用范围的内置对象, 代表session范围,即在session中寻找user.name。 若不指定范围,依次在page、request、session、 application范围中查找。 若中途找到user.name,就返回其值,不再继续找, 但若在全部范围内没有找到,就返回null。 在Web程序设计中,对JSP页面常利用EL代替脚本 代码显示输出内容。 EL表达式是由EL的有关的运算符构成的式子,其 运算符主要有:存取数据运算符以及表达式求值运算 符
811E语法 2.存取运算符 在EL中,对数据值的存取是通过“[”或“.”实现的。 其格式为: Sname property) d sname["property"11 或S{name[ property} 【说明】 (1)“[”主要用来访问数组、列表或其它集合对象的属性。 (2)“.”主要用于访问对象的属性。 (3)“[”和“,”在访问对象属性时可通用,但也有区别 ■当存取的属性名包含特殊字符(如.或-等非字母和数字 符号)时,就必须使用“[”运算符 “u”中可以是变量,“.”后只能是常量,如S{ user[data} s{ userdata}、S{user"data"]}中,后两个是等价的
8.1.1 EL语法 2. 存取运算符 在EL中,对数据值的存取是通过“[]”或“.”实现的。 其格式为: ${name.property} 或 ${name["property"]} 或 ${name[property]} 【说明】 (1)“[]”主要用来访问数组、列表或其它集合对象的属性。 (2)“.”主要用于访问对象的属性。 (3)“[]”和“.”在访问对象属性时可通用,但也有区别: ◼ 当存取的属性名包含特殊字符(如 . 或 - 等非字母和数字 符号)时,就必须使用“[]”运算符 ◼“[]”中可以是变量,“.”后只能是常量,如${user[data]}、 ${user.data}、${ user["data"]}中,后两个是等价的
811EL语法 3EL运算符 EL支持的运算符和Java语言运算符类似,主要有: 算术运算符、关系运算符、逻辑运算符等,如表8-1: 表81EL中的运算符 类别 运算符, 说明, 类别 运算符, 说明, + 加 (或式) 大于 算术运算符 c(或12),小于等于, 关系运算符 (或div) 除 =(或),大于等于, (或mod), 取余 或e) 等于, &(或and) 与 =(或ne) 不等于,4 错运算符,1(或ar) 或 条件运算符,4 特殊运算符, x:VZ1 !(或not 非 t 判定是否为空,4
8.1.1 EL语法 3. EL运算符 EL支持的运算符和Java语言运算符类似,主要有: 算术运算符、关系运算符、逻辑运算符等,如表8-1 :
王L提供自动类型转换功能,能够照一定规则 将操作数或结果转换成指定的类型,表82是自动 类型转换实例: 表82EL的自动类型转换 EL表达式 结果, 说明 Strue]s(false) truefalse, boolean转 String stull] nul转 String S(null +0) 0 nul转 Number s{123.45+0} 123.45 字符半转 Number s{12E3"+0.0} 120转mba
EL提供自动类型转换功能,能够照一定规则 将操作数或结果转换成指定的类型,表8-2是自动 类型转换实例:
811EL语法 4.应用示例 (1)求值运算符的应用 利用EL表达式,可以实现有关的计算,获取并 显示结果值。例8-1给出常用运算符的应用
8.1.1 EL语法 4.应用示例 (1)求值运算符的应用 利用EL表达式,可以实现有关的计算,获取并 显示结果值。例8-1给出常用运算符的应用