Presentation is loading. Please wait.

Presentation is loading. Please wait.

关于EL JSP 2.0將Expression Language(以下简称EL)整合进JSP标准规格。

Similar presentations


Presentation on theme: "关于EL JSP 2.0將Expression Language(以下简称EL)整合进JSP标准规格。"— Presentation transcript:

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和网页传输过程当中所使用的参数值 。 JSP 动态网页新技术

2 EL 语法 EL必须以一个金钱表示符号加上左大括号 ${ 开始,并且以右大括号 } 作结束。 ${ EL expression }
JSP 动态网页新技术

3 一个储存了特定数据内容的符号,EL可以直接对其作存取,或是结合运算符进行必要的运算之后作输出
JSP 动态网页新技术

4 运算符 运 算 符 说 明 . 存取bean property 或是map entry [] 存取 array or List 元素 ()
说 明 . 存取bean property 或是map entry [] 存取 array or List 元素 () 改变运算顺序 ? : 条件式三元运算 condition ? ifTrue : ifFalse + 加法运算 - 减法运算 * 乘法运算 / or div 除法运算 % or mod 模数运算 JSP 动态网页新技术

5 运算符 运 算 符 说 明 == or eq 对等运算 != or ne 不相等运算 < or lt 小于比较运算
说 明 == or eq 对等运算 != or ne 不相等运算 < or lt 小于比较运算 > or gt 大于比较运算 <= or le 小于或等于比较运算 >= or ge 大于或等于比较运算 && or and 逻辑AND运算 || or or 逻辑OR运算 ! or not 布尔补码运算 empty 空值运算 func(args) 函数调用 JSP 动态网页新技术

6 运算符(.)与方括号([]) 无论action elements 或是隐含对象的数据内容,均是一种集合(collection)对象,EL可以通过点运算符(.)或是方括号([])对其作存取 。 ${ param.yearValue } ${ param["yearValue"] } JSP 动态网页新技术

7 算术运算符 运 算 符 说 明 + 对两个数值进行加法运算 - 对两个数值进行减法运算 * 对两个数值进行乘法运算 / 或是 div
说 明 + 对两个数值进行加法运算 - 对两个数值进行减法运算 * 对两个数值进行乘法运算 / 或是 div 对两个数值进行除法运算 % 或是 mod 对两个数值进行模数运算 JSP 动态网页新技术

8 表达式A{+、-、*}B 首先如果A与B为null,则运算之后的结果,是一个long型态的0 。
A或B其中一个是BigDecimal,则两者均会转换成为BigDecimal 。 运 算 符 返回结果 运算符+ A.add(B) 运算符- A.subtract(B) 运算符* A.multiply(B) 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) JSP 动态网页新技术

10 表达式A{+、-、*}B 如果非上述状况,A与B一律转换成为Long,然后进行运算 。 如果运算结果产生例外,则为错误结果 。
JSP 动态网页新技术

11 表达式A {/,div} B 如果A与B为null,则运算之后回传一个long型态的0 。
假若A或B为BigDecimal或是BigInteger,两者被强制转换成为BigDecimal 并且返回A.divide(B, BigDecimal.ROUND_HALF_UP)的运算结果 。 如果非上述情形,A与B强制转换成为Double然后进行运算。最后,如果运算结果产生例外,则为错误结果 。 JSP 动态网页新技术

12 表达式A {%,mod} B 如果A与B为null,返回Long型态数值0 。
假若A或 B为Float、Double或是包含.、e或是E的字符串(String),将A与B两者强制转换为Double之后进行运算 。 如果A或B为BigInteger,强制转换为BigInteger之后,返回A.remainder(B)的运算结果 。 A与B如果非上述状况则转换为Long进行运算。最后,若运算结果 发生例外,则为错误结果 。 JSP 动态网页新技术

13 关联运算符 运 算 符 说 明 == and eq 等于 != and ne 不等于 < and lt 小于 > and gt
说 明 == and eq 等于 != and ne 不等于 < and lt 小于 > and gt 大于 <= and le 小于等于 >= and ge 大于等于 JSP 动态网页新技术

14 表达式A {<,>,<=,>=,lt,gt,le,ge} B
若是A等于B,运算符<=, le, >=或是ge返回true的结果。 当A 或是B其中之一为null,返回false。 假若A或B为BigDecimal,将A与B强制转换成为BigDecimal然后返回A.compareTo(B)的运算结果。 如果A或B为Float或是uble,强制转换Double之后,进行运算。 如果A 或B为BigInteger,强制转换BigInteger ,然后返回A.compareTo(B)的比较结果。 如果A 或B为Byte、hort、Character、Integer或是Long,强制转换成为Long 然后进行运算。 当A或是B其中之一为字符串(String),强制转换成为String之后依字母进行字符串比较。 JSP 动态网页新技术

15 表达式A {==,!=,eq,ne} B 当 A 或是B其中之一为null,返回false运算结果。
若A 或者B为BigDecimal,两者均会强制转换成为BigDecimal再进行运算,对于==运算符而言,回传一个A.equals(B)的结果,而!=运算符则返回!A.equals(B)的结果。 当A或者B为 Float或是Double,两者均会强制转换成为Double然后进行运算。 若A 或者B为BigInteger,两者均会强制转换成为BigInteger,其中若是运算符为==,回传A.equals(B),!=则返回!A.equals(B)的运算结果 若A 或者B为Byte、Short、Character、Integer或是Long,将被强制转换成为Long之后进行运算。 若A 或者B为Boolean,将被强制转换成Boolean作运算。 若A 或者B为String,将被强制转换成String作运算。 JSP 动态网页新技术

16 逻辑运算符 运 算 符 说 明 && 或 and 逻辑AND运算 || 或 or 逻辑OR运算 ! 或 not 布尔值补码
说 明 && 或 and 逻辑AND运算 || 或 or 逻辑OR运算 ! 或 not 布尔值补码 JSP 动态网页新技术

17 Empty运算符 empty被用来判断是否指定的值为null或是空值,并且返回一个代表判断结果的Boolean值,empty的运用非常简单,如下式 : ${empty A} 其中的A为所要判断的值,下面为empty的运算规则 : 若是判断值A为null,返回true的运算结果,若是A的值为空的字符串、数组或是集合对象,也返回true的结果,除此之外,一律返回false 。 JSP 动态网页新技术

18 条件式三元运算符 三元运算符针对特定判断式的运算结果,决定返回的值: ${A?B:C}
A为判断式,如果A的结果为true,返回B,否则返回C值的结果 。 JSP 动态网页新技术

19 < > <= >= lt gt le ge
运算符优先级 运算符优先级 [] . () - (unary) not ! empty * / div % mod + - (binary) < > <= >= lt gt le ge == != eq ne && and || or ? : JSP 动态网页新技术

20 内建对象 内建对象 说 明 pageContext 取得网页运行环境的相关信息 pageScope 取得page范围内特定属性的属性值
说 明 pageContext 取得网页运行环境的相关信息 pageScope 取得page范围内特定属性的属性值 requestScope 取得request范围内特定属性的属性值 sessionScope 取得session范围内特定属性的属性值 applicationScope 取得application范围内特定属性的属性值 param 取得request对象的单一参数值 paramValues 取得request对象的参数值 header 取得request对象单一标头值 headerValues 取得request对象标头值 cookie 取得request对象的cookie initParam 取得网页运行环境的初始参数值 JSP 动态网页新技术

21 内建对象 pageContext可用来取得PageContext对象当中,与JSP运行环境有关的内容信息 。
pageScope、requestScope、sessionScope和applicationScope,分别用来存取4个不同范围内的属性值 。 Param、paramValues、header、headerValues以及cookie,用來存取request对象的相关成员内容,例如网页传递参数、标头信息或是cookie等等 。 initParam 用来获取网站初始化值。 JSP 动态网页新技术

22 EL对象与 request 对象存取 EL对象 Request对象存取 param
ServletRequest.getParameter(String name) paramValues ServletRequest.getParameterValues(String name) header HttpServletRequest.getHeader(String name) headerValues HttpervletRequest.getHeaders(String) cookie HttpServletRequest.getCookies() JSP 动态网页新技术

23 范围变量 EL当中4个与范围有关的隐含对象,pageScope、requestScope、sessionScope和applicationScope,可直接用来存取属于特定范围内的变量值。从对象的名称,可以很轻易的了解这些对象的适用范围,除此之外,它们与JSP内建所的隐含对象基本上是相同的 。 EL 对 象 JSP 对 象 pageScope pageContext requestScope request sessionScope session applicationScope application JSP 动态网页新技术

24 存取范围变量 在JSP网页当中取得特定范围变量属性,必须引用getAttribute(),并且指定所要取得的变量名称 :
application.getAttribute("cname") 通过EL的存取方式: ${applicationScope.cname} JSP 动态网页新技术

25 Param & paramValues EL对象param与paramValues被设计用来提供使用request之外的一个选择 ,下表列出相同效果的request方法。 EL request ${param.paraName} request.getParameter(paraName) ${paramValues.paraName } request.getParameterValues(paraName) JSP 动态网页新技术

26 Param & paramValues存取 param内容包含当前网页所有的request参数,这段程序代码取得其中名称为yearValue的参数值 。 ${param.yearValue } 。 针对取得的参数内容,进一步对其作运算 。 ${ param.yearValue+100 } param与paramValues最大的好处便是简化了request参数数据的存取 。 JSP 动态网页新技术

27 Header & headerValues Header与headerValues這两个对象可以达到request对象取出HTTP标头信息 的功能,语法也相对简单许多。 ${header["host"]} 指定不同的标头名称,可直接返回相对的信息。 JSP 动态网页新技术

28 cookie 提供直接读取cookie所需的语法。 ${cookie.cname.value}
如果想要了解此cookie的识别名称,省略value即可。 ${cookie.cname} JSP 动态网页新技术

29 initParam 网站一开始启动的时候,通常需要设定某些与网站有关的参数 ,这些参数在网站根目录底下WEB-INF数据夹的web.xml文件里面作设定,打开此文件,在其中加入以下的内容: <web-app >   … <context-param> <param-name>admin</param-name> <param-value>tea</param-value> </context-param> </web-app> 引用initParam读取系统参数非常的容易,指定所要取得的参数名称即可 。 ${initParam.admin} JSP 动态网页新技术

30 关键字 and eq gt true instanceof or ne le false empty
not lt ge null div mod JSP 动态网页新技术


Download ppt "关于EL JSP 2.0將Expression Language(以下简称EL)整合进JSP标准规格。"

Similar presentations


Ads by Google