一、EL表达式的介绍和作用:
全称:Expression Language,一种写法非常简介的表达式。语法简单易懂,便于使用。
作用:让jsp书写起来更加的方便。简化在jsp中获取作用域或者请求数据的写法。
1、jsp写法与el表达式写法对比:
JSP写法:<%=session.getAttribute("name")%>
El表达式写法:${sessionScope.name}
二、EL表达式的基本语法
1、el表达式的格式:
用美元符号$定界,内容包括在华括弧"{}"中;
${表达式}
语法——${表达式}
1、获取请求数据
request对象存储了请求数据—>param.键名 返回值
request对象存储了请求数据—>paramvalues.键名 返回的是数组
2、获取自定义数据——通过setAttribute方法存储到作用域对象中的数据
${键名} 返回键名所对应的值
注:
如果存储的是普通字符串则直接返回;如果存储的是对象,则返回的是对象
3、获取对象中的数据
①普通对象
$${键名.属性名.属性名…}
②集合对象
三、使用EL表达式
1、使用el表达式获取作用域对象数据
作用:获取作用域对象中的数据
注:获取的是pageContext、request、session、application四个对象中的数据,其他数据一概不理会
找到了则获取返回,找不到则什么都不做,也不报错
四、示例:
${pageContext.request.contextPath }
它的作用是取出部署应用程序的名字,这样不管如何部署,所用的路径都是正确的
1、接收一组的参数:
建一个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接收:
<%request.setCharacterEncoding("UTF-8"); %>
${paramValues.enjoy[0]}
${paramValues.enjoy[1]}
${paramValues.enjoy[2]}
效果:
2、集合操作
Map集合
<%
Map map = new HashMap();
map.put("name","haoren");
//map.put("sex","fmial");
map.put("sex-t","fmial");
request.setAttribute("hh",map);
%>
${hh.name }
//${hh[sex}
${hh[“sex-t”] }
(注意:在一些特殊(取不符合Java命名规范的)的情况下只能用[],而不能用.运算,例如: ${header["accept-encoding"]})
list集合
<%
List list = new ArrayList();
list.add("中国");
list.add("美国");
list.add("小日本");
request.setAttribute("hh",list);
%>
${hh[0] }
${hh[1] }
${hh[2] }