用Struts2框架实现图书管理系统
本篇文章主要介绍使用Struts2框架实现图书管理系统的过程,不足之处还请多多提出。
1、首先最基础的是搭建Struts2框架,在框架的基础上完成图书管理系统。
框架的搭建过程这里不做详细讲解,如需参考请看https://blog.csdn.net/weixin_42322648/article/details/83547417
下图是我的框架结构:
我上图是排列方式纵向排列的,如果和你们有点不同这个没关系。
2、下面我们来分析功能和功能的实现。
首先数据库的建库建表,这里不做详解。
然后就是我们功能的实现,
(1)、登录功能
首先做登录的jsp页面, login.jsp这个页面在user文件夹下,下面附属有完整代码。
然后做登录的action LoginAction.class,这action主要是获取从页面发送过来的数据,对参数进行判断,然后确定是否登录成功。
最后就是配置struts.xml文件,
<package name="user" extends="struts-default" namespace="/user">
<action name="login" class="com.hnpi.action.LoginAction"
method="login">
<result name="success">
<param name="actionName">bookList</param>
<param name="namespace">/book</param>
<param name="method">bookList</param>
</result>
<result name="fail" type="redirect">/user/login.jsp</result>
</action>
</package>
这个只是登录的,会有的地方和下面相连,下面有完整的struts.xml的代码。
(2)、查询图书列表功能
这里就要考虑连接数据库了,要用到工具类,这里命名为DButil.java,然后我们还要用到dao层和service层,这里涉及到接口和接口方法的实现,而主要接口方法的实现在BookDaoImpl.java里面,然后在BookServiceImpl.java里面调用dao层的接口和方法的实现,这样可以做到我们实现一个框架,多写点功能,在BookServiceImpl.java里面调用不同的功能就能实现不能的功能,非常方便。
查询图书列表功能的方法也很简单,首先做图书列表的jsp页面 booklist.jsp,这个页面你在book文件夹下。
然后我们要做查询图书列表的action,这里命名为BookAction.java,这个action里面可以实现多种功能,只要是在dao层和Service层写好接口和方法,这里就可以实现,比如图书的更新,删除,新增图书。
所以以下功能就不再一一介绍,代码如下:
login.jsp 在user文件夹下
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>登录页面</title>
</head>
<body>
<form action="<%=basePath%>user/login" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="name" /></td>
</tr>
<tr>
<td>密 码:</td>
<td><input type="text" name="pwd" /></td>
</tr>
</table>
<input type="submit" value="提交" />
</form>
</body>
</html>
bookList.jsp 图书列表页面 在book文件夹下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>图书列表页面</title>
<style type="text/css">
table,table tr th, table tr td {
border: 1px solid grey;
}
</style>
</head>
<body>
<a href="<%=basePath %>book/toAddBook">新增图书</a>
<table cellspacing="0">
<thead>
<tr>
<th>编号</th>
<th>书名</th>
<th>作者</th>
<th>ISBN</th>
<th>出版社</th>
<th>操作</th>
</tr>
</thead>
<s:iterator value="#request.books" status="book">
<tr>
<td><s:property value="id"/></td>
<td><s:property value="bookName"/></td>
<td><s:property value="bookAuthor"/></td>
<td><s:property value="bookIsbn"/></td>
<td><s:property value="bookPublish"/></td>
<td><a href='<%=basePath %>book/selectBookById?book.id=<s:property value="id"/>'>更新</a> <a href='<%=basePath %>book/delBook?book.id=<s:property value="id"/>'>删除</a></td>
</tr>
</s:iterator>
</table>
</bod