什么是EL表达式?
EL表达式是一套简单的计算规则,用于给jsp标签的属性赋值,也可以直接输出。
EL表达式也可以脱离标签单独使用。
EL表达式的作用
1.访问符合JAVABean规范的类的属性
2.输出简单的运算结果
3.获取请求参数值
JAVABean
通常情况下的JAVABean指的是:
一个公共的类
含有一个空参构造方法
所有属性必须是私有的且提供get/set方法,方法名使用驼峰命名法
EL表达式的两种运用方式
方法一:${对象名.属性名}
<%
//User类是一个符合javabean规范的类,设置完属性后将其绑定到request中
User user1 = new User();
user1.setId(1);
user1.setName("link");
request.setAttribute("user1",user1);
%>
userid:${user1.id}
username:${user1.name}<br/>
执行过程:容器会依次从 pageContext,requset,session,application中查找绑定名为”user1”的对象,找到后调用对应的属性方法输出,其等价于:
<%
User user1 =(User)request.getAttribute("user1");
out.print(user1.getName());
%>
但EL表达式除了比上面代码简洁外,还避免了查找不到对象或对象值为null的异常
方法二:${ 对象名[“属性名”]}
方括号中的属性名可以使用单引号或双引号
userid:${user2["id"]}
username:${user2["name"]}
此种方式允许[]中出现绑定名,还可以允许[] 中出现从0开始的下标,用于访问数组中的某个元素的值
<%
session.setAttribute("user2id","id");
%>
userid:${user2[user2id]}
username:${user2["name"]}
相当于表达式中写一个变量
指定对象的查找范围
在编写EL表达式时,可以制定查找对应绑定名对象的范围
如,在session中查找绑定名为user1对象时,可以编写如下代码 :
${sessionScope.user1.username}
或将sessionScope替换为pageScope,requestScope,applicationScope。但注意,一旦指定的查找范围,那么在该范围中没有找到指定的绑定对象事,不会再去其他的区域查找!
使用EL表达式进行运算
EL表达式可以做一些简单的计算,可将结果直接输出或给jsp标签赋值
算术运算符:+ - * / % ,注意,+只能求和不能用来连接字符串
sum:
user1.id+user2[user2id]sum:
{“100” + “200”}
逻辑运算:&& || !
bool:${1>0 && 2<3}
关系运算:> < >= <= == !=
bool:${1>2}
empty:用来判断一个字符串或一个集合是否为空,以下四种情况结果为true:空字符串,空集合,值为null,找不到对应的值
bool:${empty user1.name}
使用EL表达式获取请求参数值
${param.userid}
等价于
request.getParameter(“userid”);
${paramValues.city}
等价于
request.getParameterValues(“city”);
这里讲述的都是EL的基础使用,如有意见欢迎评论