JavaEE进阶6——图书管理系统 实体类BookInfopackage cn.edu.hbpu.springbookdemo.entity; import lombok.Data; import java.math.BigDecimal; Data public class BookInfo { private Integer id; private String bookName; private String author; private Integer count;//库存 //金钱类用BigDecimal private BigDecimal price; private String publish; private Integer status;//1:可借阅 2:不可借阅 private String statusCN; }登录功能后端BookInfo:package cn.edu.hbpu.springbookdemo; import lombok.Data; import java.math.BigDecimal; Data public class BookInfo { private Integer id; private String bookName; private String author; private Integer count;//库存 //金钱类用BigDecimal private BigDecimal price; private String publish; private Integer status;//1:可借阅 2:不可借阅 private String statusCN; }UserController:package cn.edu.hbpu.springbookdemo; import io.micrometer.common.util.StringUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; RestController RequestMapping(/user) public class UserController { RequestMapping(/login) public Boolean login(String name,String password){ if(StringUtils.isEmpty( name) || StringUtils.isEmpty(password)){ return false; } //TODO 这里直接写死了 if(admin.equals(name) admin.equals(password)){ return true; } return false; } }获取图书列表功能后端BookController:package cn.edu.hbpu.springbookdemo.controller; import cn.edu.hbpu.springbookdemo.entity.BookInfo; import cn.edu.hbpu.springbookdemo.service.BookService; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; RestController RequestMapping(/book) public class BookController { RequestMapping(/getList) public ListBookInfo getList(){ BookService bookService new BookService(); ListBookInfo bookInfos bookService.getList(); return bookInfos; } }BookService:package cn.edu.hbpu.springbookdemo.service; import cn.edu.hbpu.springbookdemo.dao.BookDao; import cn.edu.hbpu.springbookdemo.entity.BookInfo; import java.util.List; public class BookService { public ListBookInfo getList(){ BookDao bookDao new BookDao(); ListBookInfo bookInfos bookDao.mockBookData(); for(BookInfo bookInfo:bookInfos){ if(bookInfo.getStatus() 1){ bookInfo.setStatusCN(可借阅); }else{ bookInfo.setStatusCN(不可借阅); } } return bookInfos; } }BookDao:package cn.edu.hbpu.springbookdemo.dao; import cn.edu.hbpu.springbookdemo.entity.BookInfo; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Random; public class BookDao { public ListBookInfo mockBookData(){ ArrayListBookInfo bookInfos new ArrayList(); for(int i 1;i 8;i){ BookInfo bookInfo new BookInfo(); bookInfo.setId(i); bookInfo.setBookName(图书 i); bookInfo.setAuthor(作者 i); bookInfo.setCount(i * 4 4); bookInfo.setPrice(new BigDecimal(new Random().nextInt(100))); bookInfo.setPublish(出版社 i); bookInfo.setStatus(i % 5 0 ? 2 : 1); bookInfos.add(bookInfo); } return bookInfos; } }前端book_list.html!DOCTYPE html html langen head meta charsetUTF-8 meta nameviewport contentwidthdevice-width, initial-scale1.0 title图书列表展示/title link relstylesheet hrefcss/bootstrap.min.css link relstylesheet hrefcss/list.css script typetext/javascript srcjs/jquery.min.js/script script typetext/javascript srcjs/bootstrap.min.js/script script srcjs/jq-paginator.js/script /head body div classbookContainer h2图书列表展示/h2 div classnavbar-justify-between div button classbtn btn-outline-info typebutton onclicklocation.hrefbook_add.html添加图书/button button classbtn btn-outline-info typebutton onclickbatchDelete()批量删除/button /div /div table thead tr td选择/td td classwidth100图书ID/td td书名/td td作者/td td数量/td td定价/td td出版社/td td状态/td td classwidth200操作/td /tr /thead tbody /tbody /table div classdemo ul idpageContainer classpagination justify-content-center/ul /div script getBookList(); function getBookList() { $.ajax({ url: /book/getList, type: get, success: function (books) { let finalHtml for(let book of books){ finalHtml tr finalHtml tdinput typecheckbox nameselectBook valuebook.id idselectBook classbook-select/td finalHtml tdbook.id/td finalHtml tdbook.bookName/td finalHtml tdbook.author/td finalHtml tdbook.count/td finalHtml tdbook.price/td finalHtml tdbook.publish/td finalHtml tdbook.status/td finalHtml td finalHtml div classop finalHtml a hrefbook_update.html?bookIdbook.id修改/a finalHtml a hrefjavascript:void(0) onclickdeleteBook(book.id)删除/a finalHtml /div finalHtml /td finalHtml /tr } $(tbody).html(finalHtml); } }) } //翻页信息 $(#pageContainer).jqPaginator({ totalCounts: 100, //总记录数 pageSize: 10, //每页的个数 visiblePages: 5, //可视页数 currentPage: 1, //当前页码 first: li classpage-itema classpage-link首页/a/li, prev: li classpage-itema classpage-link hrefjavascript:void(0);上一页\/a\/li, next: li classpage-itema classpage-link hrefjavascript:void(0);下一页\/a\/li, last: li classpage-itema classpage-link hrefjavascript:void(0);最后一页\/a\/li, page: li classpage-itema classpage-link hrefjavascript:void(0);{{page}}\/a\/li, //页面初始化和页码点击时都会执行 onPageChange: function (page, type) { console.log(第page页, 类型:type); } }); function deleteBook(id) { var isDelete confirm(确认删除?); if (isDelete) { //删除图书 alert(删除成功); } } function batchDelete() { var isDelete confirm(确认批量删除?); if (isDelete) { //获取复选框的id var ids []; $(input:checkbox[nameselectBook]:checked).each(function () { ids.push($(this).val()); }); console.log(ids); alert(批量删除成功); } } /script /div /body /html