大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
EL(是Expression Language的缩写),使用EL对JSP输出进行优化,可以使得页面结构更加清晰,代码可读性高,也更加便于维护。
使用EL表达式的目的:从作用域中获取指定属性名的共享数据
<%@ page isELIgnored=”true”%> 表示是否禁用EL语言, TRUE 表示禁止.。FALSE 表示不禁。
1、EL表达式的语法:
语法:${ EL表达式 } EL运算式是使用“${
”符合开头和“}”结尾的运算式
EL表达式不区分字母的大小写。可以访问对象的属性。使用EL表达式之前,必须将对象保存到作用域中。
示列:${news.title} 或者 ${news[“title”]} 访问数组newsList[0] 。”.”操作符 与 “[]”操作符类似,可以用来访问对象的属性、数组、集合。
2、[] 与 . 运算符区别:
EL 提供 . 和 [] 两种运算符来存取数据。
当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 []。
例如:${user.My-Name}应当改为${user[“My-Name”] }
如果要动态取值时,就可以用[]来做,而.无法做到动态取值。例如:${sessionScope.user[data]}中data 是一个变量 。
3、EL 变量
EL 存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。因为我们并没有指定哪一个范围的username,所以它的默认值会先从Page 范围找,假如找不到,再依序到Request、Session、Application范围。假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null,当然EL表达式还会做出优化,页面上显示空白,而不是打印输出NULL。
注意:EL输出一个常量时,字符串要加双引号 ${“abc”},不然的话EL会默认把你认为的常量当做一个变量来处理,这时如果这个变量在4个声明范围不存在的话会输出空,如果存在则输出该变量的值。
4、自动转变类型
EL 提供方便的自动转变类型,例如:${param.count + 20},假若传来count的值为10时,那么结果为30。
而 JSP 之中不能这样做,因为传来的值,它们的类型是String,所以当你接收之后,必须类型转换才能算数运算,例如:
String str_count = request.getParameter(“count”);
int count = Integer.parseInt(str_count);
count = count + 20;
所以,注意不要和java的语法(当字符串和数字用“+”链接时会把数字转换为字符串)搞混淆啦。
5、EL 隐含对象
JSP有9个隐含对象,而EL也有自己的隐含对象。EL隐含对象总共有11 个
隐含对象 |
类型 |
说明 |
PageContext |
javax.servlet.ServletContext |
表示此JSP的PageContext |
PageScope |
java.util.Map |
取得Page范围的属性名称所对应的值 |
RequestScope |
java.util.Map |
取得Request范围的属性名称所对应的值 |
sessionScope |
java.util.Map |
取得Session范围的属性名称所对应的值 |
applicationScope |
java.util.Map |
取得Application范围的属性名称所对应的值 |
param |
java.util.Map |
如同ServletRequest.getParameter(String name)。回传String类型的值 |
paramValues |
java.util.Map |
如同ServletRequest.getParameterValues(String name)。回传String[]类型的值 |
header |
java.util.Map |
如同ServletRequest.getHeader(String name)。回传String类型的值 |
headerValues |
java.util.Map |
如同ServletRequest.getHeaders(String name)。回传String[]类型的值 |
cookie |
java.util.Map |
如同HttpServletRequest.getCookies() |
initParam |
java.util.Map |
如同ServletContext.getInitParameter(String name)。回传String类型的值 |
1)pageContext 调用get的方法
2)在 EL中则可以使用param和paramValues两者来取得数据。
${param.name}
${paramValues.name}
这里param 的功能和request.getParameter(String name)相同,而paramValues和
request.getParameterValues(String name)相同。如果用户填了一个表格,表格名称为username,则我们就可以使用${param.username}来取得用户填入的值。
6、EL算术运算五个:
+ 、- 、 * 、 /或div 、 %或mod(取余)
7、EL关系运算符六个
关系运算符 |
说明 |
范例 |
结果 |
== 或 eq |
等于 |
${5==5}或${5eq5} |
true |
!= 或 ne |
不等于 |
${5!=5}或${5ne5} |
false |
< 或 lt |
小于 |
${3<5}或${3lt5} |
true |
> 或 gt |
大于 |
${3>5}或{3gt5} |
false |
<= 或 le |
小于等于 |
${3<=5}或${3le5} |
true |
>= 或 ge |
大于等于 |
${3>=5}或${3ge5} |
false |
8、EL逻辑运算符三个
逻辑运算符 |
范例 |
结果 |
&&或and |
交集${A && B}或${A and B} |
true/false |
||或or |
并集${A || B}或${A or B} |
true/false |
!或not |
非${! A }或${not A} |
true/false |
9、其他运算符三个
1)Empty 运算符
Empty 运算符主要用来判断值是否为空(NULL,空字符串,空集合),empty:为空时返回true,not empty:不为空时返回true
${empty sessionScope.user ? ‘未登录’ : ‘已登录’ }
${not empty sessionScope.user }
2)三目条件运算符: ${ A ? B : C}
3)()运算符: ${ A*(B+C) }
ends~
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/164758.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...