准备数据表 模拟
create table tb_book
(
bid number primary key,--书籍id
bname varchar2(100),--书籍名称
bprice number(5,2),--书籍价格
btype varchar2(100)--书籍类型
)
select * from tb_book;
1.1 DataGrid基本属性
1.1.1 基本属性
url : '', // 初始化请求路径
fitcolumns : false, // 列宽自适应
singleSelect : true, // 是否选中单行
checkOnSelect : true, // 点击行选中时该checkbox选中或取消选中
rownumbers:true, // 行号
fit : true, // 高宽自适应
border : false, // 是否显示边框
title : '书本列表', // datagrid标题
striped : true, // 显示斑马线效果
表格布局
需要引入共享架包页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!-- Base标签:当引入外部文件时,被Base标签标明的路径会自动引入到src中 -->
<base href = "${pageContext.request.servletContext.contextPath }/static/">
<!-- easyui css -->
<link rel = "stylesheet" type = "text/css" href = "js/jquery-easyui-1.5.5.2/themes/default/easyui.css">
<!-- icon css -->
<link rel = "stylesheet" type = "text/css" href = "js/jquery-easyui-1.5.5.2/themes/icon.css">
<!-- jQuery -->
<script type = "text/javascript" src = "js/jquery-easyui-1.5.5.2/jquery.min.js"></script>
<!-- easyui.js -->
<script type = "text/javascript" src = "js/jquery-easyui-1.5.5.2/jquery.easyui.min.js"></script>
<!-- 汉化 -->
<script type = "text/javascript" src = "js/jquery-easyui-1.5.5.2/locale/easyui-lang-zh_CN.js"></script>
<!-- 通过js标签保存了一个绝对路径 -->
<script type = "text/javascript">
let xPath = "${pageContext.request.servletContext.contextPath }";
</script>
<!-- 脚本的方式借助域对象保存一个 -->
<%
String xPath = request.getServletContext().getContextPath();
session.setAttribute("xPath", xPath);
%>
对话窗口 引入添加修改界面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <div> <form id="bookForm"> <input type="hidden" name="bid" id="bid" /> <div style="margin: 15px;"> <label for="name">书名:</label> <input id="bookname" class="easyui-textbox" name="bname" style="width: 300px" data-options="required:true"> </div> <div style="margin: 15px;"> <label for="price">价格:</label> <input class="easyui-textbox" name="bprice" style="width: 300px" data-options="required:true"> </div> <div style="margin: 15px;"> <label for="booktype">类型:</label> <input class="easyui-textbox" name="btype" style="width: 300px" data-options="required:true"> </div> </form> </div>
主界面数据表格
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html > <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <%@include file="static/common/eayUI_llink.jsp" %> </head> <body> <div id="p" class="easyui-panel" data-options="fit:true"> <div style="margin: 10px auto; text-align:center;" > <input id="strName" class="easyui-textbox" style="width:300px"> <a id="btn" class="easyui-linkbutton" data-options="iconCls:'icon-search'">搜索</a> </div> <div id="tb" style = "text-align: right"> <a id = "addBookId" href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-add',plain:true"></a> <a id = "editBookId" href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-edit',plain:true"></a> <a id = "delBookId" href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-remove',plain:true"></a> </div> <table id="dg"></table> <div id="dd" style="display: display;" ></div> </div> <script type="text/javascript"> $("#delBookId").click(function () { let row = $("#dg").datagrid('getSelected');//获取选中行 if(row==null){ $.messager.alert('我的消息','请你选中后在进行操作!'); return; } $.messager.confirm('确认','您确认想要删除记录吗?',function(r){ if (r){ $.post(path+"/DelBooksevrlet.do",{"bid":row.bid},function(data){ if(data){ $.messager.alert('我的消息','删除成功'); getDate(); }else{ $.messager.alert('我的消息','删除失败'); } }); } }); }) $('#dg').datagrid({ url:path+'/BookListServlet.do', //分页下拉框 pageList:[5,10,20,30,50,90], columns:[[ {field:'bid',title:'编号',width:'25%'}, {field:'bname',title:'名称',width:'25%'}, {field:'bprice',title:'价格',width:'25%'}, {field:'btype',title:'类型',width:'25%'}, ]], pagination:true, //携带参数 queryParams: { searchName: $("#strName").val() }, toolbar:$("#tb"), singleSelect:true//设置只能选一行 }); getDate(); $("#btn").click(function () { getDate(); }) function getDate() { $('#dg').datagrid('load', { strName:$("#strName").val() }); } $("#editBookId").click(function (){ let row = $("#dg").datagrid('getSelected');//获取选中行 if(row==null){ $.messager.alert('我的消息','请你选中后在进行操作!'); return; } edetBook("修改图书",row); }); $("#addBookId").click(function () { edetBook("新增图书"); }) function edetBook(title,row) { let str="新增"; if(title.includes('修改')){ str="修改" } $('#dd').dialog({ title:title, width: 400, height: 300, closed: false, cache: false, href: 'addBook.jsp',//引入窗口类容 modal: true, buttons:[{ text:'保存', handler:function(){//$("#bookForm").serialize()jQuery总序列化 直接获取form中所有值 $.post(path+"/EdetBookServlet.do", $("#bookForm").serialize(), function (data) { if(data.Zt){ $.messager.alert('我的消息',""+str+"成功!",'info'); getDate(); $('#dd').dialog("close")//关闭窗口 }else{ $.messager.alert('我的消息',""+str+"失败!",'info'); } },"json") } },{ text:'关闭', handler:function(){ $('#dd').dialog("close") } }], //在加载远程数据时触发。 onLoad onLoad:function(){ if(row){ $("#bookForm").form("reset"); //重置表单 $("#bookForm").form('load',row);//加载远程数据 } } }); } </script> </body> </html>
加载数据servlet界面
package com.zking.easyui.book.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.fasterxml.jackson.databind.ObjectMapper; import com.zking.easyui.book.biz.IBookBiz; import com.zking.easyui.book.biz.impl.BookBizImpl; import com.zking.easyui.book.entity.Book; /** * 显示所有图书的控制器servlet */ @WebServlet("/BookListServlet") public class BookListServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //编码 request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); response.setContentType("application/json;charset=utf-8"); //获取请求参数(pageIndex,searchName) int pageIndex = 1; String pIndex = request.getParameter("page");//page值是已经固定好 if(pIndex!=null) { pageIndex = Integer.valueOf(pIndex); } int pageSize = 10; String pSize = request.getParameter("rows"); if(pSize!=null) { pageSize = Integer.valueOf(pSize); } //获取searchName String searchName = request.getParameter("searchName"); if(searchName == null) { searchName = ""; } System.out.println("searchName = "+searchName); //调用biz IBookBiz ibb = new BookBizImpl(); //获取总记录数 Integer tableCount = ibb.getTableCount(searchName); // 总数据 List<Book> booksAll = ibb.getBooksAll(pageIndex, pageSize, searchName); //实例化Map集合 Map<String,Object> maps = new HashMap<String,Object>(); maps.put("total", tableCount); maps.put("rows", booksAll); //创建JSON工具 ObjectMapper mapper = new ObjectMapper(); String writeValueAsString = mapper.writeValueAsString(maps); // 获取out PrintWriter out = response.getWriter(); out.write(writeValueAsString); out.flush(); out.close(); } }
删除servlet界面
package com.zking.easyui.book.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.fasterxml.jackson.databind.ObjectMapper; import com.zking.easyui.book.biz.IBookBiz; import com.zking.easyui.book.biz.impl.BookBizImpl; import com.zking.easyui.book.entity.Book; /** * 删除图书的servlet控制器 */ @WebServlet("/DelBookServlet") public class DelBookServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //编码 request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); response.setContentType("application/json;charset=utf-8"); //获取请求参数(pageIndex,searchName) Integer bid = request.getParameter("bid")!=null?Integer.valueOf(request.getParameter("bid")):0; //封装 IBookBiz ibb = new BookBizImpl(); Map<String,Object> maps = new HashMap<>(); try { ibb.delBook(bid); maps.put("message", true); } catch (Exception e) { maps.put("message", false); } //获取out PrintWriter out = response.getWriter(); ObjectMapper mapper = new ObjectMapper(); String writeValueAsString = mapper.writeValueAsString(maps); out.write(writeValueAsString); out.flush(); out.close(); } }
修改新增和界面
package com.zking.book.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.fasterxml.jackson.databind.ObjectMapper; import com.zking.book.biz.BookBiz; import com.zking.book.biz.impl.BookBizImpl; import com.zking.book.entity.Book; /** * Servlet implementation class BookListServlet */ @WebServlet("/EdetBookServlet.do") public class EdetBookServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); response.setContentType("application/json;charset=utf-8"); Map<String, Object> map=new HashMap<>(); Integer bid=0; String parameter = request.getParameter("bid"); if(parameter!=null&¶meter!="") { bid=Integer.valueOf(parameter); } //request.getParameter("bid")==null?0:Integer.valueOf(request.getParameter("bid")); String bname = request.getParameter("bname"); Float bprice = request.getParameter("bprice")!=null?Float.valueOf(request.getParameter("bprice")):0; String btype = request.getParameter("btype"); try { if(bid==0) { new BookBizImpl().addBook(new Book(bname, bprice, btype)); }else { new BookBizImpl().updBook(new Book(bid, bname, bprice, btype)); } map.put("Zt", true); } catch (Exception e) { map.put("Zt", false); } ObjectMapper mapper = new ObjectMapper(); String writeValueAsString = mapper.writeValueAsString(map); //获取out 输出对象 PrintWriter out = response.getWriter(); out.write(writeValueAsString); out.flush(); out.close(); } }
演示效果