文章目录
一:EL语言概述
二:EL操作对象
一:EL语言概述:
EL 为表达式语言(Expression Language),可以简化对变量的对象的访问
由两个组开发
JSP 标准标签库专家组
JSP 2.0 专家组
JSP 表达式语言的语法
${EL Expression} 所有的表达式以” ${”开始,以”}”结束。
JSP EL 表达式用于以下情形
静态文本
标准标签和自定义标签
EL不能在脚本元素中使用
示例
在静态文本中使用EL语言
10+5= $ {10+5}
10/5= $ {10/5}
10*5= $ {10*5}
10%5= $ {10%5}
true and false= $ {true && false}
true or false= $ {true || false}
5>6= $ {5>6}
5 == 6 = $ {5==6}
[ ]和.运算符
EL使用”[ ]”和”.”操作符来访问数据。
访问JavaBean对象user的属性name可以写成如下两种形式
${user.name}
${user[“name”]}
需要注意的是:对于连字符(-)或者其它特殊字符的字符串只能用“[ ]”操作符,而不能用“.”操作符,这也是“[ ]”和“.”操作符的区别
示例:
<html>
<head><title>el lanauge</title></head>
<%pageContext.setAttribute(“color”,”red”)%>
<body bgcolor=${pageScope.color}>
<h1>测试</h1>
</body>
</html>
禁用EL
在 JSP 中禁用计算,以忽略 JSP 中 EL 表达式的执行
禁用 EL 计算的语法为:
<%@ page isELIgnored =“true|false” %>
示例:
<%@page isELIgnored="false" %>
<html>
<head>
<title>表达式示例</title>
</head>
<body bgcolor="#ffffff">
<h1>启用表达式语言</h1>
<form method="post" action="expressionexample.jsp">
<b>${'First Name: '}<input type="text“
value=“${‘请输入您的名字'}" /></b>
<b>${'Last Name: '}<input type="text“
value=“${‘请输入您的姓氏'}" /></b>
<input type=“submit” name=“Submit” value=“${‘提交表单'}">
<input type=“reset” value=“${‘重置表单'}">
</form>
</body>
</html>
二:EL的操作对象
EL表达式的操作内容可以是
常量
变量
Jsp内置对象
EL表达式还提供了对操作内容的运算
算述运算
关系运算
逻辑运算
EL表达式的操作结果会自动输出到输出流对像中
常量
文字常量被指定为固定值

EL常量操作
Boolean:true|false
Integer 10,5,20….
Float 10.01f
String “hello world”
Null null
示例:
${true} ${10} ${10.5f} ${“hello”} ${null}
EL变量操作
${object.attribut}
${object.attribut.attribut}
当EL在对表达式中的变量进行操作的时候,它通过pageContext.findAttribute(“”)的方式来查找变量
查找的范围从page,request,session,application
如果这几个范围都没有找到则返回null
也可以通过以下的内容来指定范围
pageScope,requestScope
sessionScope,applicationScope
EL变量作用范围


EL 变量—自动类型转换
${param.count + 20}
当param.coutn为10时,则结果为30.
而不用向以前那样如下:
String str_count = request.getParameter(“count”);
int count = Integer.parseInt(str_count);
count = count + 20;
将A 转为String 类型
将A 转为Number 类型的N
将A 转为Character 类型
将A 转为Boolean 类型
EL运算符
EL 算术运算符
其他运算符
EL 关系运算符
注意:在使用EL 关系运算符时,不能够写成:
${param.password1} = = ${param.password2}或者
${ ${param.password1 } = = ${ param.password2 } }而应写成
${ param.password1 = = param.password2 }
EL 逻辑运算符
EL 逻辑运算符的规则很简单:
(1) A {&&, and, || 或 or } B
·将A 和B 转为Boolean,然后依其运算符运算
(2) {!, not}A
·将A 转为Boolean,然后依其运算符运算
EL 其他运算符
(1) Empty 运算符
Empty 运算符主要用来判断值是否为null 或空的,例如:e m p t y p a r a m . n a m e ( 2 ) 条 件 运 算 符 所 谓 条 件 运 算 符 如 下 : { empty param.name } (2) 条件运算符 所谓条件运算符如下:emptyparam.name(2)条件运算符所谓条件运算符如下:{ A ? B : C}意思是说,当A 为true 时,执行B;而A 为false 时,则执行C。
(3) ( ) 括号运算符
括号运算符主要用来改变执行优先权,例如:${ A * (B+C) }
EL保留字

EL 隐式对象
-pageContext
-Session
-Request
-Response
-servletContext
-Param
-paramValues
-Header
-Cookies
-initParam
EL中的隐式对像共有11个,可以分成三类
与范围有关的隐含对象
与输入有关的隐含对象
其他隐含对象
与范围有关的隐含对象:
applicationScope
sessionScope
requestScope
pageScope
说明:它们基本上就和JSP的pageContext、request、session和application一样,不过必须注意的是,这四个隐式对象只能用来取得范围属性值,即JSP中的getAttribute(String name),却不能取得其他相关信息,没有其它相关的方法.
与输入有关的隐含对象:
Param
paramValues
用来取得用户请求的参数,如:
${param.name}
${paramValues.name}
以上的作用为:
request.getParameter(String name)
request.getParameterValues(String name)
其他隐含对象:
cookie
header 和headerValues
initParam
pageContext