day07【Jsp,el,jstl】综合案例-查询所有联系人分析
测试驱动开发
1:新建模块添加git
2:建一个test文件
test代码:
public class TestContactService {
@Test
public void test01(){
//1:创建业务类对象
ContactService contactService = new ContactService();
//2:调用查询
List<Contact> contactList = contactService.queryAll();
//3:遍历
for(Contact contact:contactList){
System.out.println(contact);
}
}
}
service层
public class ContactService {
//1:创建数据层访问对象
private ContactDao dao = new ContactDao();
public List<Contact> queryAll() {
//2:调用全查方法
return dao.findAll();
}
}
contact层
//联系人实体类
public class Contact {
private int id;
private String name;
private String sex;
private int age;
private String address;
private String qq;
private String email;
Dao层
//数据访问层
public class ContactDao {
public List<Contact> findAll() {
//创建集合
List<Contact> list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
//添加元素
Contact contact = new Contact(i,"name"+i,"男",10,"bj","QQ","xx@qq.com");
list.add(contact);
}
return list;
}
}
运行一下test测试,只要数据没有问题,增加页面显示是比较容易的,将文件push到远程仓库
servlet
@WebServlet("/list")
public class ContactListServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1:创建业务类对象
ContactService contactService = new ContactService();
//2:调用查询
List<Contact> contactList = contactService.queryAll();
//3:遍历打印,改成请求转发,并且使用el与jstl来展示
request.setAttribute("list",contactList);
request.getRequestDispatcher("/list.jsp").forward(request,response);
}
}
1:带数据到页面:请求转发‘
2:更新地址:重定向
jsp页面:
添加jstl的jar包,并且项目识绑定(右击-》add as libray
引用库,一定为jsp(蓝色标记)
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%-- 1:判断一下,当前的集合是否为空--%>
<%-- 2:没有元素,提示没有查询结果--%>
<c:if test="${empty list}">
没有查询到联系人
</c:if>
<%-- 3:有元素,使用循环标签显示所有的元素--%>
<c:if test="${!empty list}">
<table border="1" width="100%">
<tr>
<td>编号</td>
<td>姓名</td>
<td>性别</td>
<td>年龄</td>
<td>籍贯</td>
<td>QQ</td>
<td>email</td>
<td>操作</td>
</tr>
<c:forEach items="${list}" var="item">
<tr>
<td>${item.id}</td>
<td>${item.name}</td>
<td>${item.gender}</td>
<td>${item.age}</td>
<td>${item.address}</td>
<td>${item.qq}</td>
<td>${item.email}</td>
<td>删除</td>
</tr>
</c:forEach>
</c:if>
</body>
</html>