Servlet--EL表达式与JSTL
1、EL表达式
jsp页面因为内含servlet相关对象和Java代码,经常会出现空指针异常的问题,而EL表达式就替换了页面中的Java代码,避免了这样的问题的发生。
EL 表达式有标准标签库一起诞生, 与JSTL配合使用
- 自动化工作:可以在pageContext,request,session,application中子弹寻找 “attribute” request .setAttrbute(“k”,v)
- 自动调用 get方法
- 自动处理空值
${users}//相当于List<User> list=(List<User>) request.getAttribute("users");
EL表达式演示
<h2>EL表达式输出信息</h2>
<p>自动寻获 ${message},
自动调用get方法 ${emp.ename},
自动处理空 ${text} </p>
<h1>EL表达式演示2</h1>
<p>arr1: ${arr1[0]} ${arr1[1]} </p>
<p>arr2: ${arr2[0]} ${arr2[1]} </p>
<p>arr3: ${arr3[0].ename} ${arr3[0].empno}</p>
<p>list1: ${list1[0]}</p>
<p>list2: ${list2[0].ename}</p>
<p>map: ${map.east.ename} ${map['east'].ename}</p>
2、JSTL
配置JSTL
导入JSTL jar包
<dependency>
<artifactId>jstl</artifactId>
<groupId>jstl</groupId>
<version>1.2</version>
</dependency>
在前端页面开头需加上对JSTL的引用
<%@taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
JSTL结合EL表达式遍历获取数据
<table border="1">
<tr>
<td>id</td>
<td>name</td>
<td>password</td>
<td>操作</td>
</tr>
<c:forEach items="${users}" var="user">
<tr>
<td>${user.id}</td>
<td>${user.name}</td>
<td>${user.password}</td>
<td><a href="${path}/user/getUser?id=${user.id}">修改</a>|<a href="${path}/user/deleteUser?id=${user.id}">删除</a></td>
</tr>
</c:forEach>
</table>