Servlet--EL表达式与JSTL

1、EL表达式
jsp页面因为内含servlet相关对象和Java代码,经常会出现空指针异常的问题,而EL表达式就替换了页面中的Java代码,避免了这样的问题的发生。

EL 表达式有标准标签库一起诞生, 与JSTL配合使用

  1. 自动化工作:可以在pageContext,request,session,application中子弹寻找 “attribute” request .setAttrbute(“k”,v)
  2. 自动调用 get方法
  3. 自动处理空值
${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>