Day07JavaWeb【Jsp,el,jstl,综合案例】显示联系人列表***

联系人列表运行效果

在这里插入图片描述

需求分析

本质就是查询一个List集合,然后请求转发到页面,使用el表达式加个jstl标签就进行展示。
在这里插入图片描述

编写业务逻辑

咱们是测试驱动开发,所以先编写测试逻辑,再实现逻辑最后加页面
test\java\com\wzx\service\TestContactService.java

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);
            }
    }
}

编写实体类

src\com\wzx\bean\Contact.java
本质就是给数据建模

//联系人实体类
public class Contact {
    
    
    private int id;
    private String name;
    private String sex;
    private int age;
    private String address;
    private String qq;
    private String email;

编写业务类

src\com\wzx\service\ContactService.java

//service层
public class ContactService {
    
    
    //1:创建数据层访问对象
    private ContactDao dao = new ContactDao();
    public List<Contact> queryAll() {
    
    
        //2:调用全查方法
        return dao.findAll();
    }
}

编写数据访问层

src\com\wzx\dao\ContactDao.java
当前没有将jdbc与mysql整合进来,因为本节重点是三层架构,只要突出三层就可以

//数据访问层
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","[email protected]");
            list.add(contact);
        }
        return list;
    }
}

此时可以运行一下test测试,只要数据没有问题,增加页面显示是比较容易的

添加页面之Servlet

src\com\wzx\web\ContactListServlet.java

@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);
    }
}

添加页面之el与jstl

添加jstl 的jar

在这里插入图片描述

新建页面导入标签并遍历数据

web\list.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>

猜你喜欢

转载自blog.csdn.net/u013621398/article/details/108563928