什么是EL
- EL即Expression Language(表达式语言)
EL的功能
- 替代JSP页面中的复杂代码
EL的语法
- ${ EL exprission }
- bean.name或{ bean[‘name’] }
EL的特点
- 自动转换类型
1.1、 EL得到某个数据时可以自动转换类型
1.2、 对于类型的限制更加宽松 - 使用简单
1.1、相比较在JSP中嵌入Java代码,EL应用更简单
EL的语法
- 以“${”作为开始,以“}”作为结束
直接使用变量名获取值$
${ username }
变量属性范围(作用域)名称
– | – |
---|---|
属性范围 | EL中的名称 |
page(只能在本页面使用) | pageScope,例如${pageScope.username},表示在page范围内查找username变量,找不到返回Null |
request(请求时使用) | requstScope |
session(会话时使用,但不能跨用户) | sessionScope |
application(应用级,整个项目都能使用) | applicationScope |
EL中的运算符
- 运算符”[ ]”
运算符”.”
EL中的运算符使用示例
获取对象属性
${user.name} <----相等作用-----> ${user[name]}
EL获取对象集合中的数据
- 在Session中保存了一个(list)集合users
${sessionScope.user[1]} 得到集合中第二位的对象
EL简单应用示例
<%
Map names = new HashMap();
names.put("one","LiYang");
names.put("two","WangHua");
//设置集合值,放入到请求当中
request.setAttribute("names",names);
%>
姓名:${names.one}<br/>
姓名:${names["two"] }<br/>
EL小结
当二个不同的作用域的,通过相同键值,传递值时,接受页面,会根据就近原则取值。
设置页面
request.setAttribute(“ce”,”测试1”);
session.setAttribute(“ce”,”测试2”);
取值页面
此时取到的是 “测试1”
${ce}
取session中,指定作用域即可
${sessionScope.ce}