EL的作用(为什么学习EL)
EL功能
1,EL获取数据
2,EL执行运算
3,EL获取web开发常用对象
EL作用(为什么要学习EL)
EL和JSTL一起使用取代JSP页面中嵌入Java代码写法。
EL的语法
${EL表达式}
EL表达式的三种用法 1, EL获取数据 2,EL执行运算 3,EL获取web开发常用对象
1,EL获取数据
EL如何获取数据
EL表达式语句在执行的时候,会调用pageContext.findAttribute()方法。分别从page、request、session、application范围查找相应对象,找到就会返回相应对象,找不到返回””(不是null,是空的字符串)。EL所获取的数据需要在四个作用范围中。
EL表达式去出来的数据一定要在以上4个域的对象中
代码示范
<body>
<%
pageContext.setAttribute("name", "页面范围的page域");
request.setAttribute("name", "请求域");
//会话域,整个会话范围的域
session.setAttribute("name", "会话范围的域");
//切记application在jsp中代替了servletContext域
application.setAttribute("name", "整个应用的域");
%>
<!-- EL表达式,用$加上给setAttribute中的值 -->
${pageScope.name} ---相当于代替了--- <%=pageContext.getAttribute("name") %> </br>
${requestScope.name }
${sessionScope.name }
${applicationScope.name }
</body>
EL获取数组和集合的值
list和array数组都是
${list[0]}
${array[0]}
map的取值是
${map.aaa}
<%
String[] str={"aaa","bbb","ccc"};
List<String> list=new ArrayList<String>();
list.add("111");
list.add("222");
Map<String,String> map=new HashMap<String,String>();
map.put("aaa","111");
//分别将数组,list,map存入到pageContext域中
pageContext.setAttribute("list", list);
pageContext.setAttribute("map", map);
pageContext.setAttribute("str",str);
%>
<!--
list和array数组都是
${list[0]}
${array[0]}
map的取值是
${map.aaa}
-->
${list[0]}
${list[1]}
${str[0] }
${str[1] }
${map.aaa }
JSP不可以省略泛形,例如map中前后都必须要有泛形
2,EL执行运算
执行算数运算
执行关系运算
执行逻辑运算
获取项目名称:${pageContext.request.contextPath}