Layui实现CURD

本文档详细介绍了如何利用Layui框架实现数据的增删改查(CURD)功能,包括Bookdao的方法实现,BookAction的业务逻辑处理,Struts2配置文件的配置,以及前端index.js和index.jsp页面的交互逻辑。

Bookdao方法

package com.dao;

import java.sql.SQLException;
import java.util.List;

import com.entity.Book;
import com.sun.javafx.collections.MappingChange.Map;

import com.sun.xml.internal.ws.util.StringUtils;
import com.util.EntityBaseDao;
import com.util.JsonBaseDao;
import com.util.JsonUtils;
import com.util.PageBean;

public class BookDao extends JsonBaseDao {

	/**
	 * 书籍类别查询
	 * @param paMap
	 * @param pageBean
	 * @return
	 * @throws SQLException 
	 * @throws IllegalAccessException 
	 * @throws InstantiationException 
	 */
	public List<Map<String, Object>> list(Map<String, String[]> paMap,PageBean pageBean) throws InstantiationException, IllegalAccessException, SQLException{
		String sql=" select * from booktype where true";
		String bookid=JsonUtils.getParamVal(paMap, "booktypeid");
		String bookname=JsonUtils.getParamVal(paMap, "booktypename");
		if(StringUtils.isNotBlank(bookid)) {
			sql+=" and booktypeid ="+bookid+" ";
		}
		if(StringUtils.isNotBlank(bookname)) {
			/*ql+=" and booktypename  = '"+booktypename+"' ";*/
			sql+=" and booktypename like '%"+bookname+"%'";
		}
		sql += "  order by booktypeid desc ";
		return executeQuery(sql, pageBean);
	}
	/**
	 * 增加书本类
	 * @throws SQLException 
	 * @throws IllegalAccessException 
	 * @throws IllegalArgumentException 
	 * @throws SecurityException 
	 * @throws NoSuchFieldException 
	 */
	public int addBookType(Map<String, String[]> paMap) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, SQLException {
		String sql="insert into bookid (bookname,typetime) values(?,?)";
		return executeUpdate(sql, new String[] {"bookname","typedescribe"}, paMap);
		
	}
	
	/**
	 * 删除书本类型
	 * @param paMap
	 * @return
	 * @throws SQLException 
	 * @throws IllegalAccessException 
	 * @throws IllegalArgumentException 
	 * @throws SecurityException 
	 * @throws NoSuchFieldException 
	 */
	public int deleteBookType(Map<String, String[]> paMap) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, SQLException {
		String sql="delete from booktype where bookid=?";
		return executeUpdate(sql, new String[] {"bookid"}, paMap);
	}
	
	/**
	 * 修改书本类型信息
	 * @param paMap
	 * @return
	 * @throws NoSuchFieldException
	 * @throws SecurityException
	 * @throws IllegalArgumentException
	 * @throws IllegalAccessException
	 * @throws SQLException
	 */
	public int updateBookType(Map<String, String[]> paMap) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, SQLException {
		String sql="update  booktype set bookname=?,typetime=? where booktypeid=?";
		return executeUpdate(sql, new String[] {"bookname","typetime","bookid"}, paMap);
	}
}

BookAction


import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.dao.BookDao;
import com.util.PageBean;
import com.util.ResponseUtil;

public class BookAction extends ActionSupport  {

private BookDao bookDao=new BookDao();

/**
 * 查询书籍类别
 * @param req
 * @param resp
 * @return
 * @throws Exception
 */
public String list(HttpServletRequest req,HttpServletResponse resp) throws Exception {
	try {
		PageBean pageBean=new PageBean();
		pageBean.setRequest(req);
		List<Map<String, Object>> list = this.bookDao.list(req.getParameterMap(), pageBean);
		ObjectMapper om =new ObjectMapper();
		Map<String, Object> map=new HashMap<>();
		map.put("code", 0);
		map.put("count", pageBean.getTotal());
		map.put("data", list);
		ResponseUtil.write(resp, om.writeValueAsString(map));
	} catch (InstantiationException e) {
		e.printStackTrace();
	} 
	return null;
}


/**
 * 增加
 * @param req
 * @param resp
 * @return
 */
public String addBookType(HttpServletRequest req,HttpServletResponse resp) {
	try {
		List<Map<String, Object>> list = this.bookDao.list(req.getParameterMap(), null);
		int val = 0;
		//如果集合不为空 或者长度等于 0  就把它增加进去 
		if(list==null || list.size() == 0) {
			val = this.bookDao.addBookType(req.getParameterMap());
		}
		/*if(list!=null && list.size() >0) {
			val = this.booktypeDao.addBookType(req.getParameterMap());
		}*/
		else {
			val= 2;
		}
		
		ResponseUtil.write(resp, val);
	} catch (Exception e) {
		e.printStackTrace();
	}
	return null;
}
/**
 * 删除书本类别
 * @throws Exception 
 * @throws JsonProcessingException 
 * 
 */
public String deleteBookType(HttpServletRequest req,HttpServletResponse resp) throws JsonProcessingException, Exception {
	try {
		int deleteBookType=this.bookDao.deleteBookType(req.getParameterMap());
		ObjectMapper om=new ObjectMapper();
		ResponseUtil.write(resp, om.writeValueAsString(deleteBookType));
	} catch (NoSuchFieldException e) {
		e.printStackTrace();
	}
	return null;
}

/**
 * 修改书籍类别
 * @param req
 * @param resp
 * @return
 * @throws JsonProcessingException
 * @throws Exception
 */

public String updateBookType(HttpServletRequest req,HttpServletResponse resp) throws JsonProcessingException, Exception {
	try {
		int updateBookType=this.bookDao.updateBookType(req.getParameterMap());
		ObjectMapper om=new ObjectMapper();
		ResponseUtil.write(resp, om.writeValueAsString(updateBookType));
	} catch (NoSuchFieldException e) {
		e.printStackTrace();
	}
	return null;
}

/**
 * 下拉框
 */
public String listSelect(HttpServletRequest req,HttpServletResponse resp) throws Exception {
	try {
		PageBean pageBean=new PageBean();
		pageBean.setRequest(req);
		List<Map<String, Object>> list = this.bookDao.list(req.getParameterMap(), pageBean);
		ObjectMapper om =new ObjectMapper();
		ResponseUtil.write(resp, om.writeValueAsString(list));
	} catch (InstantiationException e) {
		e.printStackTrace();
	} 
	return null;
}
}

strust2的配置文件

	<package name="sy" extends="base" namespace="/sy">
		<action name="/strutsClassAction_*" class="com.cpc.web.StrutsClassAction" method="{1}">
		</action>
	</package>

index.js


layui.use(['table','layer','form'],function(){
 	var data=document.getElementById("sj").value;
 	var table =layui.table;
 	var layer=layui.layer;
 	var form = layui.form;
      /*展示数据表格  */
 	table.render({
 		  elem:'#test'//表格id
 		,url:data+'/booktypeAction.action?methodName=list'//所对应调用的接口
 		,method:'post'		//提交方式
 	    ,cols:[[
 	    	/*根据数据库的表格所对应的名称  */
 	         {field:'booktypeid',height:80, width:300, title: '书籍类别序号', sort: true}
 	         ,{field:'booktypename', height:80,width:300, title: '书籍类别名称'}
 	         ,{field:'createtime',height:80, width:300, title: '当前时间',templet:"<div>{{layui.util.toDateString(d.createtime, 'yyyy-MM-dd HH:mm:ss')}}</div>"}
 	         ,{field:'right',height:80, width:300, title: '操作', toolbar:'#lineBtns'}//操作栏 
 	    ]]
 	         ,page:'true'//分页
 	         , id: 'testReload'
 	});
 	
 	//上方菜单操作栏(查询、以及  增加  按钮  )
     var $ = layui.$, active = {
             //查询
             reload: function () {
                 var booktypename = $('#booktypename');//书籍类别名称 根据 id来取值
                 console.log(booktypename.val());
                 // 执行重载
                 table.reload('testReload', {
                     page: {
                         curr: 1
                         // 重新从第 1 页开始
                     },
                     where: {
                         key: 'booktypename',
                         booktypename: booktypename.val(),
                     }
                 });
             }, add: function () { //添加
                 layer.open({//弹出框
                     type: 1,
                     title: '添加书本类别',
                     maxmin: true,
                     shadeClose: true, //点击遮罩关闭层
                     area: ['80%', '80%'],
                     content: $('#box1'),
                     btn: ['确定', '取消'],
                     yes: function (index, layero) {//确定执行函数
                     	console.log(layero);
                         //执行添加方法
                         $.getJSON(data+"/booktypeAction.action?methodName=addBookType", {
                         	 booktypename: $("#booktypename1").val(), ///角色名
                         	/* booktypename: $("input[ name='booktypename1']").val(), *///角色名
                         }, function (data) {
                         	/*根据后台返回的参数来进行判断  */
                             if (data==1) {
                                 layer.alert('添加成功', {icon: 1, title: '提示'}, function (i) {
                                     layer.close(i);
                                     layer.close(index);//关闭弹出层
                                     $("#booktype")[0].reset()//重置form
                                 })
                                 table.reload('testReload', {//重载表格
                                     page: {
                                         curr: 1
                                         // 重新从第 1 页开始
                                     }
                                 })
                             } else if(data==2){
                                 layer.msg('添加失败,请勿重复添加书本类别名称')
                             }
                         })

                     }, cancel: function (index, layero) {//取消
                         $("#booktype")[0].reset()//重置form  根据id
                         layer.close(index)
                     }
                 });
             }
     }
     $('.layui-form .layui-btn').on('click', function () {
         var type = $(this).data('type');
         active[type] ? active[type].call(this) : '';
     });
 	
 	
 	
 	/*表格 行内操作(编辑  以及  删除 按钮操作)  */
 	    table.on('tool(test)', function(obj){
          var data = obj.data; //获得当前行数据
          var urlex=document.getElementById("sj").value;
          var tr=obj.tr//活动当前行tr 的  DOM对象
          console.log(data);
          var layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
          if(layEvent === 'del'){ //删除
              layer.confirm('确定删除吗?',{title:'删除'}, function(index){
                  //向服务端发送删除指令og
                  $.getJSON(urlex+'/booktypeAction.action?methodName=deleteBookType',{booktypeid:data.booktypeid}, function(ret){
                          layer.close(index);//关闭弹窗
                          table.reload('testReload', {//重载表格
                              page: {
                                  curr: 1
                                  // 重新从第 1 页开始
                              }
                          })
                  });
                  layer.close(index);
              });
          } else if(layEvent === 'edit'){ //编辑
              layer.open({
                  type: 1 //Page层类型
                  ,skin: 'layui-layer-molv'
                  ,area: ['380px', '270px']
                  ,title: ['编辑书本类别信息','font-size:18px']
                  ,btn: ['确定', '取消'] 
                  ,shadeClose: true
                  ,shade: 0 //遮罩透明度
                  ,maxmin: true //允许全屏最小化
                  ,content:$('#box1')  //弹窗id
                  ,success:function(layero,index){
 	                 $('#booktypeid').val(data.booktypeid);
 	                 $('#booktypename1').val(data.booktypename);  
                  },yes:function(index,layero){
                 	/*  $.ajaxSettings.async = false; */
                 	  $.getJSON(urlex+'/booktypeAction.action?methodName=updateBookType',{
                 		  booktypeid: $('#booktypeid').val(),
                 		  booktypename: $('#booktypename1').val(), 
                           booktypeid: data.booktypeid,
                 	  },function(data){
                 	  //根据后台返回的参数,来进行判断
                 		  if(data>0){
                 			  layer.alert('编辑成功',{icon:1,title:'提示'},function(i){
                 				  layer.close(i);
                                   layer.close(index);//关闭弹出层
                                   $("#booktype")[0].reset()//重置form
                 			  })
                 			  table.reload('testReload',{//重载表格
                 				  page:{
                 					  curr:1
                 				  }
                 			  })
                 		  }
                 	  });
                  }
                
              
              });
          }
       
 	    });
 	  
 });

index.jsp


<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<link  rel="stylesheet" href="layui/css/layui.css" >
<script src="${pageContext.request.contextPath }/layui/layui.js"></script>
<script type="text/javascript" src="layui/lay/modules/jquery.js"></script>

<title>Insert title here</title>



</head>
<body>
<div class="child-nav">
    <span class="layui-breadcrumb">
         <a>书籍类别管理</a>
         <a><cite>分类列表</cite></a>
    </span>
</div>
<blockquote class="layui-elem-quote">

<!--搜索维度  -->
 <div class="layui-form">
    <div class="layui-form-item">
        <label class="layui-form-label">书籍名称</label>
        <div class="layui-input-inline">
            <input type="text" id='booktypename' name="booktypename" lay-verify="required" placeholder="请输入书籍名" autocomplete="true" class="layui-input">
        </div>
        <button class="layui-btn layui-btn-normal layui-btn-radius" data-type="reload"><i class="layui-icon">&#xe615;</i>查询</button>
        <button class="layui-btn layui-btn-normal"   data-type="add">新建</button>
    </div>
</div>   
</blockquote>

<!--隐藏域传值  -->
<input type="hidden"  id="sj" value="${pageContext.request.contextPath}" >
<!--根据table id 来展示表格数据  -->
<!-- 我们在写展示表格的时候,一定要给它写上其lay-filter渲染表格-->
<table class="layui-hide" id="test" lay-filter="test"></table>

<!--行内样式按钮   -->
<script type="text/html" id="lineBtns">
  <a class="layui-btn layui-btn-xs" lay-event="edit"><i class="layui-icon">&#xe642;</i>编辑</a>
  <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>


<!--弹出层  -->
	 <div class="site-text" style="margin: 5%; display: none" id="box1"  target="test123">
	    <form class="layui-form layui-form-pane" onsubmit="return false" id="booktype">
	        <div class="layui-form-item">
	           <label class="layui-form-label">类型编号</label>
	            <div class="layui-input-block">
	                <input type="text" class="layui-input layui-disabled text_add "  id="booktypeid" name=booktypeid  disabled="disabled">
	            </div>
	            <br>
	            <label class="layui-form-label"> 书本类别名</label>
	            <div class="layui-input-block">
	                <input type="text" class="layui-input"  id="booktypename1"  name=booktypename1><br>
	            </div>
	        </div>
	    </form>
	</div> 
</body>



<script type="text/javascript" src="${pageContext.request.contextPath }/public/Layui/js/booktype.js"></script>

</html>



</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值