什么是EL表达式
EL表达式(Expression Language),最初定义于JSTL1.0部分,在JSP2.0中,EL从JSTL中剥离出来,放置在JSP规范中,称为JSP2.0规范的⼀部分
在JSP中使⽤EL表达式,可以简化对象和变量的访问是EL表达式
EL表达式语法
语法格式:
${需要展示信息的名字}
注意:
当表达式没有指定变量或者对象的范围时,那么容器会依次从pageContext—>request—>session—>application中查找该变量或对象,我们可以通过隐含对象获得指定作⽤域的值:
pageScope对象,⽤于获取当前⻚⾯的属性值
requestScope对象,⽤于获取请求范围的属性值
sessionScope对象,⽤于获取会话范围的属性值
applicationScope对象,⽤于获取程序范围的属性值
语法:
${requestScope.key}
EL中基础操作符
术语 | 定义 |
---|---|
算术型 | + 、-、 * /(div) 除 、 %(mod) 余数 |
逻辑型 | and、&&、or、!、not、II |
关系型 | ==、eq、!=、ne、、gt、<=、le、>=、ge。可以与其他值进⾏⽐较,或与布尔型、字符串型、整型或浮点型⽂字进⾏⽐较。 |
Empty | Empty操作符是⼀个前缀操作符⽤于判断⼀个值是否为null或者为empty如String str =“”; ${empty str} 返回值为true; |
条件型 | A ?B :C。根据 A 赋值的结果来赋值 B 或 C。 |
示例:
单个变量:${a+10}<br>
单个变量:${s}<br>
单个对象:${key.属性名}
//对象类型
Users u=new Users();
u.setName("CaveWang");
u.setPass("abc");
pageContext.setAttribute("u1",u);
user.name=${u1.name}
user.pass=${u1.pass}
//集合对象
List list=new ArrayList();
list.add("CaveWang");
list.add(21);
list.add(u);
pageContext.setAttribute("list2",list);
list1=${list2[0]}<br/>
list2=${list2[1]}<br/>
list3=${list2[2].pass}<br/>
//判断变量是否有值或是否存在:${empty key值}
List list2=new ArrayList();
list2.add("aa");
request.setAttribute("list222",list2);
//判断list中是否有数据:${empty list222}