Easyui数据表实现增删改

news/2024/7/10 23:00:03 标签: easyui, 前端, javascript, jquery

摘要:

1、$("表单id").serialize()
    jQuery中提供的一个方法,可以直接不需要手动获取输入框值,直接打包形成一个url参数拼接。

2、消息框的使用
    $.message.alert();

 需要引入共享架包页面

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

修改HTML

<%@ 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>

效果展示

 

修改的jsp

//修改的点击事件
	$('#editBookId').click(function(){
		let row=$('#dg').datagrid('getSelected');//判断是否选中
		if(row==null){
			$.messager.alert('提示','请选中行在进行修改!');
			return;
		}
		
		editBookUI('edit',row);
		
	});
	
	//新增的点击事件
	$('#addBookId').click(function(){
		  
		editBookUI('add');
		
	});
	
	//新增修改共用容器
	function editBookUI(type,row){
		let ae="";
		let action='/addBook';
		if(type=='add'){
			ae="新增图书";
			action="/addBook";
		}else{
			ae="修改图书";
			action="/editBook";
		}
		$('#dd').dialog({    
		    title: ae,    
		    width: 400,    
		    height: 260,    
		    closed: false,    
		    cache: false,    
		    href: xPath+"/addBook.jsp",    
		    modal: true ,
		    buttons:[{
				text:'确认',
				handler:function(){
					$.ajax({
						url:xPath+action,
						type:"post",
						data:$('#bookForm').serialize(),//获取表单中的值
						datatype:"text",
						success:function(data){
							let flag=data.message;
							if(flag){
								$.messager.alert('我的消息','ok!');
								myload();//刷新界面,
								$('#dd').dialog('close');//关闭界面
							}
						}
					});
				}
			},{
				text:'关闭',
				handler:function(){
					$('#dd').dialog('close');
				}
			}],
			//远程加载时触发
			onLoad:function(){
				//console.log(row.bid);
				if(row){
				$('#bookForm').form('reset');//重置表单
				$('#bookForm').form('load',row);//数据赋值
				
				}
				
			}
		});  
	}

删除操作实现

//删除的点击事件
	$('#delBookId').click(function(){
		let row=$('#dg').datagrid('getSelected');//判断是否选中
		if(row==null){
			$.messager.alert('提示','请选中行在进行删除!');
			return;
		}
		$.messager.confirm('确认对话框', '您确认要进行删除吗?', function(r){
			if (r){//确认删除调用ajax
			  $.post(xPath+"/delBook",{"bid":row.bid},function(data){
				 if(data.message){
					 $.messager.alert('提示','删除成功!'); 
					 myload();//刷新界面
				 }else{
					 $.messager.alert('提示','删除失败!'); 
				 }
			  });
			}
			
		});
	});

删除的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();
 
	
	}
 
}

 


http://www.niftyadmin.cn/n/1830567.html

相关文章

一个javascript面试题解析

var length 10;function fn(){console.log(this.length);}var obj {length: 5,method: function (fn) {fn(); // 10// 实际上&#xff0c;最终的结果&#xff1a;获取的是 实参的个数&#xff01;arguments[0](); //// 结果&#xff1a;3// 此时&#xff0…

单例的饥饿、懒汉模式案例

今天分享一下单例模式的几种写法&#xff0c;以及抽象工厂的实现代码&#xff0c;希望能对你各位大佬有所帮助。 1. 为什么需要学习设计模式 设计模式&#xff08;Design pattern&#xff09;代表了最佳的实践&#xff0c;是很多优秀的软件开发人员的经验总结&#xff0c;是解决…

Swift 2.0 到底「新」在哪?

【编者按】2015年6月&#xff0c;一年一度的苹果 WWDC 大会如期而至&#xff0c;在大会上苹果发布了 Swift 2.0&#xff0c;引入了很多新的特性&#xff0c;以帮助开发者更快、更简单地构建应用。本篇文章作者是 Maxime defauw &#xff0c;本文中 Maxime 向大家简要介绍 Swift…

JavaScript_Util_03

function domReady(f){if(domReady.done) return f();if(domReady.timer){domReady.ready.push(f);}else{//为页面加载完毕病毒一个事件//以防止它最先完成。使用addEvent方法addEvent(window,"load",isDOMReady);//初始化待执行函数的数组domReady.ready[f];//尽可能…

c#调用微信接口获取token值

废话不说&#xff0c;一个方法实现&#xff0c;这里的url 参数即为配置好的访问路径&#xff0c; string url "https://api.weixin.qq.com/cgi-bin/token?grant_typeclient_credential&appid" AppID "&secret" AppSecret; 这里的两个参数Ap…

mysqldump按条件导出,截取sq文件中某标的sql

mysqldump --hex-blob --default-character-setutf8 log_db_130 t_report_scenes --where "created_at > 2014-11-22 00:00:00">130_t_report_scenes.sql awk /t_game_role_pet/ 28.sql >pet.sql转载于:https://blog.51cto.com/tfbaby/1600998

Comparable比较器写法ClassCastExcption类转换异常

集合类图&#xff0c;如下所示 list集合 遍历方式&#xff1a;下标&#xff0c;forEach&#xff0c;迭代器(小编推荐使用) 初始化 List<Integer> list new ArrayList<>();//初始化Beforepublic void setup() {list.add(1);list.add(3);list.add(3);list.add(4);li…

XML配置文件解析与建模

目录 什么是xml&#xff1f; xml的作用: 一&#xff0c;XML元素的定义语法 二&#xff0c;XML属性的定义语法 建模并解析到内存条 今天小编给大分享一下xml配置文件的解析与读取&#xff0c;希望能对各位大佬们有所帮助。 什么是xml&#xff1f; 是标记语言&#xff0c;按…