一、EL表达式作用
获取数据: EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象、获取数据。(某个web域 中的对象,访问javabean的属性、访问list集合、访问map集合、访问数组)
二、jsp写法与el表达式写法对比:
JSP写法:
<%=session.getAttribute("user")%>
El表达式写法:${sessionScope.user}
三、EL表达式的基本语法
1.语法
用美元符号$定界,内容包括在华括弧"{}"中;
${表达式}
2.获取请求数据
request对象存储了请求数据—>param.键名 返回值
request对象存储了请求数据—>paramvalues.键名 返回的是数组
3.获取自定义数据——通过setAttribute方法存储到作用域对象中的数据
${键名} 返回键名所对应的值
注:
如果存储的是普通字符串则直接返回;如果存储的是对象,则返回的是对象
4.获取对象中的数据
①普通对象
$${键名.属性名.属性名…}
②集合对象
5.使用el表达式获取作用域对象数据
作用:获取作用域对象中的数据
注:获取的是pageContext、request、session、application四个对象中的数据,其他数据一概不理会
找到了则获取返回,找不到则什么都不做,也不报错
6.代码示例:
${pageContext.request.contextPath}它的作用是取出部署应用程序的名字,这样不管如何部署,所用的路径都是正确的
建一个el2.jsp提交:
<html>
<head>
<title>Title</title>
</head>
<body>
<a href="${pageContext.request.contextPath}/el.jsp?count=3">el</a>
<form action="${pageContext.request.contextPath}/el.jsp" method="post">
<input type="checkbox" name="enjoy" value="打架" checked="checked">打架
<input type="checkbox" name="enjoy" value="打人">打人
<input type="checkbox" name="enjoy" value="打球">打球
<input type="submit" value="提交">
</form>
</body>
</html>
建一个el.jsp接收:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
%>
${param.count}
${paramValues.enjoy[0]}
${paramValues.enjoy[1]}
${paramValues.enjoy[2]}
${user2.id}
${user2.username}
${user2.orders[0].id}
${user2.orders[0].ordername}
${user2.orders[1].id}
${user2.orders[1].ordername}
</body>
</html>
运行结果截图