EL表达式
使用前加个头文件 <%@ page isELIgnored=“false” %> 开启EL表达式,Web.XML高版本默认为false意为开启,低版本默认为true需要手动加上。
EL表达式语法
EL表达式是为了JSP写起来更加简单。它提供了在JSP中简化表达式的方法,让JSP的代码更加简化。
语法结构非常简单:${表达式}
EL表达式操作的都是域对象中的数据,操作不了局部变量。
当需要指定从某个特定的域对象中查找数据时可以使用个四个域对象对应的对应的空间对象,分别是 pageScope , requestScope , sessionScope , applicationScope 。
${pageScope.属性名}
${requestScope.属性名}
${sessionScope.属性名}
${applicationScope.属性名}
如果不指定某个域对象的话,EL默认的查找方式为从小到大查找,找到为止。当域对象找完了还未找到则返回空字符串“”。
通过EL表达式获取项目路径
一般通过 ${pageContext.request.contextPath} 来动态获取项目名称路径类似于request.getContextPath();
获取List集合
<%
数据源
List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("bbb");
request.setAttribute("list",list);
%>
<%--
用EL表达式获取list中指定下标的数据
${list[下标]}
获取集合的长度
${list.size()}
注意:这里list代表的是域对象中的变量名,也就是集合名
--%>
获取Map
<%
数据源
HashMap<String, String> map = new HashMap<>();
map.put("name","张三");
map.put("name2","李四");
request.setAttribute("map",map);
%>
<%--
通过EL表达式获取Map中指定值
${map["key"]} 或 ${map.key}
注:这里map代表的是域对象中的变量名
--%>
获取javaBean对象
javaBean中属性字段必须要有get方法才能取到!,注意:取值的时候直接用 域对象.属性名就可以了,不需要调用get方法
获取对象的方式
${对象名}
获取对象中的属性
${对象名.属性名}
判断域对象是否为空
判断对象为空吗
${empty 域对象名}
为空则返回true;
不为空则返回false;
如果为String类型的域对象,那么空字符串也返回true
如果为集合类型的域对象,那么长度小于1,也就是没有长度的集合也返回true