J2EE学习笔记之EL表达式
简介:
使用EL(Expression Language)会使JSP写起来更加简单。百度有云 EL(中文名为表达式语言)的灵感来自于ECMAScript(JavaScript)和XPath表达式语言,它提供了在JSP中简化表达式的方法。
所有的EL表达式均以${内容}这种形式使用。我认为使用EL实现的功能,均可以通过代码实现,而不必通过EL。
学习目标:
掌握如何EL运算符
掌握EL内置对象
掌握如何使用EL存取器
下面分别学习一下
(一)EL运算符
EL运算符包括算术运算符、关系运算符、逻辑运算符、验证运算符等多种运算符操作。
1.算术运算符
使用EL中的算术运算符,开发者可以方便地在JSP中进行算术操作。(话说好像直接用代码也可以,没太多必要非得使用EL算术运算符)
使用EL算术运算符的原因可能是因为这样可以减少页面代码量。(原来使用代码做的事,现在用运算符代替了)
常用的算术运算符有加、减、乘、除、取余,介绍如下:
加:${1+1} 答案是几呢? 2啊
减:${1-1} 0
乘:${1*2} 2
除:${4/2} 2
取余:${3%2} 1
2.关系运算符 方便在JSP页面中进行比较操作
常用关系运算符>、<、>=等,如下:
${1==1}或${1 eq 1} 结果为什么呢? true
${1!=1}或${1 ne 1} false
${1<2}或${1 lt 2} true
${1>2}或${1 gt 2} false
${1<=2}或${1 le 2} true
${1>=2}或${1 ge 2} false
3.逻辑运算符 方便在JSP页面中进行逻辑操作
注:此运算符两边的表达式必须为布尔型的
${X && Y}或${X and Y} 结果为:X和Y同为true时,结果为true
${A || B}或${A or B} 结果为:A和B同时为false时,结果为fasle
${!A}或${not A} 结果为:当A为true时,结果为false;当A为false时,结果为true
4.条件运算符
${A? B : C}
A为true,执行B;A为false时,执行C。
5.验证运算符
EL中提供了验证运算符empty即${empty input},如果input为空则结果为true,反之false。
注:在浏览器地址栏传递的参数,在JSP页面中使用param接受。
(二)EL内置对象
1.内置对象使用.和[]运算符来存取数据
如:
${requestScope.user.Name} 取得request范围内的user中的Name属性
等价于
${requestScope.user["Name"]}
注意:
当要存取的属性(数据)名称中包含非字母或数字的特殊符号时,必须使用[]
2.与存储有关的内置对象
pageScope、requestScope、sessionScope、applicationScope 4个隐含对象正好与JSP中分pageContext、request、session、application相对应。
当然这4个隐含对象只能用来取得响应范围内的属性值。没有那4个JSP对象功能那么多
注:如果不指定范围即${只写属性名},默认认为这是要在page范围内查找,当然如果page范围中不到,则按照request、session、application依次查找下去,最终如果还是没有找到,那么就返回null,在网页中也不显示。
3.与输入有关的内置对象
与输入有关的隐含对象有两个param和paramValues,用来获取用户发送过来的参数数据。
当然这可以通过使用request的相应方法等效实现。
使用param只能接受只有一个值得参数,而如果参数有多个值,就必须使用paramValues来接收参数。
其他的如cookie内置对象、header、initParam内置对象、pageConte内置对象的不写了。
(三)EL存取器
使用EL存取器可以方便的访问JavaBean、Map、数组和List等中的数据。使用EL对数据进行访问比使用Scriptlets简单。
简介:
使用EL(Expression Language)会使JSP写起来更加简单。百度有云 EL(中文名为表达式语言)的灵感来自于ECMAScript(JavaScript)和XPath表达式语言,它提供了在JSP中简化表达式的方法。
所有的EL表达式均以${内容}这种形式使用。我认为使用EL实现的功能,均可以通过代码实现,而不必通过EL。
学习目标:
掌握如何EL运算符
掌握EL内置对象
掌握如何使用EL存取器
下面分别学习一下
(一)EL运算符
EL运算符包括算术运算符、关系运算符、逻辑运算符、验证运算符等多种运算符操作。
1.算术运算符
使用EL中的算术运算符,开发者可以方便地在JSP中进行算术操作。(话说好像直接用代码也可以,没太多必要非得使用EL算术运算符)
使用EL算术运算符的原因可能是因为这样可以减少页面代码量。(原来使用代码做的事,现在用运算符代替了)
常用的算术运算符有加、减、乘、除、取余,介绍如下:
加:${1+1} 答案是几呢? 2啊
减:${1-1} 0
乘:${1*2} 2
除:${4/2} 2
取余:${3%2} 1
2.关系运算符 方便在JSP页面中进行比较操作
常用关系运算符>、<、>=等,如下:
${1==1}或${1 eq 1} 结果为什么呢? true
${1!=1}或${1 ne 1} false
${1<2}或${1 lt 2} true
${1>2}或${1 gt 2} false
${1<=2}或${1 le 2} true
${1>=2}或${1 ge 2} false
3.逻辑运算符 方便在JSP页面中进行逻辑操作
注:此运算符两边的表达式必须为布尔型的
${X && Y}或${X and Y} 结果为:X和Y同为true时,结果为true
${A || B}或${A or B} 结果为:A和B同时为false时,结果为fasle
${!A}或${not A} 结果为:当A为true时,结果为false;当A为false时,结果为true
4.条件运算符
${A? B : C}
A为true,执行B;A为false时,执行C。
5.验证运算符
EL中提供了验证运算符empty即${empty input},如果input为空则结果为true,反之false。
注:在浏览器地址栏传递的参数,在JSP页面中使用param接受。
(二)EL内置对象
1.内置对象使用.和[]运算符来存取数据
如:
${requestScope.user.Name} 取得request范围内的user中的Name属性
等价于
${requestScope.user["Name"]}
注意:
当要存取的属性(数据)名称中包含非字母或数字的特殊符号时,必须使用[]
2.与存储有关的内置对象
pageScope、requestScope、sessionScope、applicationScope 4个隐含对象正好与JSP中分pageContext、request、session、application相对应。
当然这4个隐含对象只能用来取得响应范围内的属性值。没有那4个JSP对象功能那么多
注:如果不指定范围即${只写属性名},默认认为这是要在page范围内查找,当然如果page范围中不到,则按照request、session、application依次查找下去,最终如果还是没有找到,那么就返回null,在网页中也不显示。
3.与输入有关的内置对象
与输入有关的隐含对象有两个param和paramValues,用来获取用户发送过来的参数数据。
当然这可以通过使用request的相应方法等效实现。
使用param只能接受只有一个值得参数,而如果参数有多个值,就必须使用paramValues来接收参数。
其他的如cookie内置对象、header、initParam内置对象、pageConte内置对象的不写了。
(三)EL存取器
使用EL存取器可以方便的访问JavaBean、Map、数组和List等中的数据。使用EL对数据进行访问比使用Scriptlets简单。
用法和前面(二)中的1一样。
完结