第8章EL 关于EL JSP2.0將 Expression Language(以下简称EL)整合进JSP标准规格。 EL并非全新的语言,最早出现于JSTL10当中,被用来简化数据 存取的相关操作 由于EL已是JSP的标准,因此用户可以选择直接在JSP网页当中使 用EL替代Java进行数据的存取操作 EL有其专属的一套语法,包含了两项基本要素:变量与运算符。 >EL內建隐含对象 implicit variables),以Java集合对象的型态出现 其中储存了网页的各种信息,包含sesn、c0ke和网页传输过 程当中所使用的参数值 JSP动态网页新技术
第8章 EL JSP 动态网页新技术 1 关于EL ➢ JSP 2.0將Expression Language(以下简称EL)整合进JSP标准规格。 ➢ EL并非全新的语言,最早出现于JSTL 1.0当中,被用来简化数据 存取的相关操作。 ➢ 由于EL已是JSP的标准,因此用户可以选择直接在JSP网页当中使 用EL替代Java进行数据的存取操作。 ➢ EL有其专属的一套语法,包含了两项基本要素:变量与运算符 。 ➢ EL內建隐含对象(implicit variables),以Java集合对象的型态出现, 其中储存了网页的各种信息,包含session、cookie和网页传输过 程当中所使用的参数值
第8章EL EL语法 EL必须以一个金钱表示符号加上左大括号${开始,并且以右大 括号}作结束 S EL expression j JSP动态网页新技术 2
第8章 EL JSP 动态网页新技术 2 EL 语法 EL必须以一个金钱表示符号加上左大括号${ 开始,并且以右大 括号 } 作结束。 ${ EL expression }
第8章EL EL变量 个储存了特定数据内容的符号,EL可以直接对其作存取, 或是结合运算符进行必要的运算之后作输出 JSP动态网页新技术 3
第8章 EL JSP 动态网页新技术 3 EL变量 一个储存了特定数据内容的符号,EL可以直接对其作存取, 或是结合运算符进行必要的运算之后作输出
第8章El 运算符 运算符 说明 存取 bean property或是 map entry 存取 array or List元素 改变运算顺序 条件式三元运算 condition?irue: ifFalse 加法运算 减法运算 乘法运算 or div 除法运算 or mod 模数运算 JSP动态网页新技术
第8章 EL JSP 动态网页新技术 4 运算符 运 算 符 说 明 . 存取bean property 或是map entry [] 存取 array or List 元素 () 改变运算顺序 ? : 条件式三元运算 condition ? ifTrue : ifFalse + 加法运算 - 减法运算 * 乘法运算 / or div 除法运算 % or mod 模数运算
第8章EL 运算符 运算符 说明 req对等运算 I =or ne 不相等运算 or gt 大于比较运算 =or ge 大于或等于比较运算 & or and 逻辑AND运算 oror 逻辑OR运算 i or not 布尔补码运算 empty 空值运算 func(args. 函数调用 JSP动态网页新技术 5
第8章 EL JSP 动态网页新技术 5 运算符 运 算 符 说 明 == or eq 对等运算 != or ne 不相等运算 or gt 大于比较运算 = or ge 大于或等于比较运算 && or and 逻辑AND运算 || or or 逻辑OR运算 ! or not 布尔补码运算 empty 空值运算 func(args) 函数调用
第8章EL 运算符()与方括号( 无论 action elements或是隐含对象的数据内容,均是一种集合 collection)对象,EL可以通过点运算符(或是方括号(对其作存 取 i param. year ue S param[" year Value"]) JSP动态网页新技术 6
第8章 EL JSP 动态网页新技术 6 运算符(.)与方括号([]) ➢ 无论action elements 或是隐含对象的数据内容,均是一种集合 (collection)对象,EL可以通过点运算符(.)或是方括号([])对其作存 取 。 ➢ ${ param.yearValue } ➢ ${ param["yearValue"] }
第8章EL 算术运算符 运算符 说明 对两个数值进行加法运算 对两个数值进行减法运算 对两个数值进行乘法运算 /或是div 对两个数值进行除法运算 %或是mod 对两个数值进行模数运算 JSP动态网页新技术 7
第8章 EL JSP 动态网页新技术 7 算术运算符 运 算 符 说 明 + 对两个数值进行加法运算 - 对两个数值进行减法运算 * 对两个数值进行乘法运算 / 或是 div 对两个数值进行除法运算 % 或是 mod 对两个数值进行模数运算
第8章EL 表达式A{十、-、}B >首先如果A与B为nu,则运算之后的结果,是一个long型态的0。 >A或B其中一个是 BigDecimal,则两者均会转换成为 BigDecimal 运算符 返回结果 运算符+ A. add (B) 运算符 A subtract(B) 运算符* A multiply(B) JSP动态网页新技术 8
第8章 EL JSP 动态网页新技术 8 表达式A{+、-、*}B ➢ 首先如果A与B为null,则运算之后的结果,是一个long型态的0 。 ➢ A或B其中一个是BigDecimal,则两者均会转换成为BigDecimal 。 运 算 符 返回结果 运算符+ A.add(B) 运算符- A.subtract(B) 运算符* A.multiply(B)
第8章EL ∠表达式A什+、-、*}B >A或B为 Float、 Double或是包含.、c或是E:的字符串( String): 如果A或是B其中之一为 BigInteger,两者均会强制转型为 BigDecimal,否则转型为 Double,然后进行运算。 如果A或B为 BigInteger,两者均会被强制转换成为 BigInteger, 然后进行表8-4中的相关运算 运算符 返回结果 运算符+ A. add (B) 运算符 A subtract(B) 运算符* A multiply (B) JSP动态网页新技术
第8章 EL JSP 动态网页新技术 9 表达式A{+、-、*}B ➢ A或B为Float、Double或是包含.、e或是E:的字符串(String) : – 如果A或是B其中之一为BigInteger,两者均会强制转型为 BigDecimal,否则转型为Double,然后进行运算。 – 如果A或B为BigInteger,两者均会被强制转换成为BigInteger, 然后进行表8-4中的相关运算。 运 算 符 返回结果 运算符+ A.add(B) 运算符- A.subtract(B) 运算符* A.multiply(B)
第8章EL 表达式A{+、-、}B >如果非上述状况,A与B一律转换成为Long,然后进行运算。 ≯如果运算结果产生例外,则为错误结果 JSP动态网页新技术
第8章 EL JSP 动态网页新技术 10 表达式A{+、-、*}B ➢ 如果非上述状况,A与B一律转换成为Long,然后进行运算。 ➢ 如果运算结果产生例外,则为错误结果