数据库

Dao类
public class StrutsClassDao extends JsonBaseDao{
public List<Map<String, Object>> query(Map<String, String[]> paMap, PageBean pageBean) throws Exception {
String sql = "select * from t_struts_class where true ";
String cname = JsonUtils.getParamVal(paMap, "cname");
if (StringUtils.isNotBlank(cname)) {
sql = sql + " and cname like '%" + cname + "%'";
}
String cid = JsonUtils.getParamVal(paMap, "cid");
if (StringUtils.isNotBlank(cid)) {
sql = sql + " and cid = " + cid ;
}
return super.executeQuery(sql, pageBean);
}
public int eidt(Map<String, String[]> paMap) throws Exception {
String sql = "update t_struts_class set cname = ?, cteacher = ?, pic = ? where cid = ?";
return super.executeUpdate(sql, new String[] {"cname", "cteacher", "pic", "cid"}, paMap);
}
public int remove(Map<String, String[]> paMap) throws Exception {
String sql = "delete from t_struts_class where cid = ?";
return super.executeUpdate(sql, new String[] { "cid" }, paMap);
}
public int add(Map<String, String[]> paMap) throws Exception {
String sql = "insert into t_struts_class (cname, cteacher, pic)values (?,?,?)";
return super.executeUpdate(sql, new String[] { "cname", "cteacher", "pic"}, paMap);
}
}
curd请求的Action类
public class StrutsClassAction extends BaseAction{
private StrutsClassDao strutsClassDao = new StrutsClassDao();
public String add() throws Exception {
int n = strutsClassDao.add(request.getParameterMap());
ResponseUtil.writeJSON(response, n);
return null;
}
public String query() throws Exception {
PageBean pageBean = new PageBean();
pageBean.setRequest(request);
List<Map<String, Object>> list = strutsClassDao.query(request.getParameterMap(), pageBean);
Map<String, Object> map=new HashMap<>();
map.put("code", 0);
map.put("count", pageBean.getTotal());
map.put("data", list);
ResponseUtil.writeJSON(response, map);
return null;
}
public String eidt() throws Exception {
int n = strutsClassDao.eidt(request.getParameterMap());
ResponseUtil.writeJSON(response, n);
return null;
}
public String remove() throws Exception {
int n = strutsClassDao.remove(request.getParameterMap());
ResponseUtil.writeJSON(response, n);
return null;
}
}
strust2的配置文件中添加如下代码
<package name="sy" extends="base" namespace="/sy">
<action name="/strutsClassAction_*" class="com.cpc.web.StrutsClassAction" method="{1}">
</action>
</package>
前台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">
<title>Layui + Struts 实现CURD</title>
<link rel="stylesheet" href="static/layui/css/layui.css">
<script src="${pageContext.request.contextPath }/static/layui/layui.js"></script>
<script type="text/javascript" src="static/js/jquery-3.3.1.js"></script>
</head>
<body class="child-body">
<input type="hidden" id="path"
value="${pageContext.request.contextPath}">
<blockquote class="layui-elem-quote">
<div class="layui-form">
<div class="layui-form-item">
<label class="layui-form-label">cname:</label>
<div class="layui-input-inline">
<input type="text" id='searchName' name="searchName"
lay-verify="required" placeholder="请输入cname" autocomplete="true"
class="layui-input">
</div>
<button class="layui-btn layui-btn-normal layui-btn-radius"
data-type="reload">
<i class="layui-icon"></i>查询
</button>
<button class="layui-btn layui-btn-normal" data-type="add">新建</button>
</div>
</div>
</blockquote>
<table class="layui-hide" id="strutsClassTable" lay-filter="test"></table>
<script type="text/html" id="lineBtns">
<a class="layui-btn layui-btn-xs" lay-event="edit"><i class="layui-icon"></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="myFrom">
<div class="layui-form-item">
<label class="layui-form-label"> cname</label>
<div class="layui-input-block">
<input type="text" class="layui-input" id="cname" name=cname><br>
</div>
<label class="layui-form-label">cteacher</label>
<div class="layui-input-block">
<input type="text" class="layui-input" id="cteacher" name=cteacher><br>
</div>
<label class="layui-form-label">pic</label>
<div class="layui-input-block">
<input type="text" class="layui-input" id="pic" name=pic><br>
</div>
</div>
</form>
</div>
<script src="${pageContext.request.contextPath }/static/js/index.js"></script>
</body>
</html>
index.js
layui.use(['table','layer','form'],function(){
var path=document.getElementById("path").value;
var table =layui.table;
var layer=layui.layer;
var form = layui.form;
var $ = layui.$;
table.render({
elem:'#strutsClassTable'
,url:path+'/sy/strutsClassAction_query.action'
,method:'post'
,cols:[[
{field:'cid',height:80, width:300, title: 'cid'}
,{field:'cname', height:80,width:300, title: 'cname'}
,{field:'cteacher',height:80, width:300, title: 'cteacher'}
,{field:'pic',height:80, width:300, title: 'pic'}
,{field:'right',height:80, width:300, title: '操作', toolbar:'#lineBtns'}
]]
,page:'true'
, id: 'testReload'
});
var active = {
reload: function () {
var cname = $('#searchName').val();
table.reload('testReload', {
page: {
curr: 1
},
where: {
key: 'cname',
cname: cname
}
});
},
add: function () {
layer.open({
type: 1,
title: '添加信息',
maxmin: true,
shadeClose: true,
area: ['60%', '55%'],
content: $('#box1'),
btn: ['确定', '取消'],
yes: function (index, layero) {
$.getJSON(path+"/sy/strutsClassAction_add.action", {
cname:$("#cname").val(),
cteacher:$("#cteacher").val(),
pic:$("#pic").val()
}, function (data) {
if (data > 0) {
layer.alert('添加成功', {icon: 1, title: '提示'}, function (i) {
layer.close(i);
layer.close(index);
$("#myFrom")[0].reset()
})
table.reload('testReload', {
page: {
curr: 1
}
})
} else{
layer.msg('添加失败')
}
})
}, cancel: function (index, layero) {
$("#myFrom")[0].reset()
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 tr=obj.tr
var layEvent = obj.event;
if(layEvent === 'del'){
layer.confirm('确定删除吗?',{title:'删除'}, function(index){
$.getJSON(path+'/sy/strutsClassAction_remove.action',{cid:data.cid}, function(ret){
layer.close(index);
table.reload('testReload', {
page: {
curr: 1
}
})
});
layer.close(index);
});
} else if(layEvent === 'edit'){
layer.open({
type: 1,
title: '修改信息',
maxmin: true,
shadeClose: true,
area: ['60%', '55%'],
content: $('#box1'),
btn: ['确定', '取消']
,content:$('#box1')
,success:function(layero,index){
$('#cname').val(data.cname);
$('#cteacher').val(data.cteacher);
$("#pic").val(data.pic);
},yes:function(index,layero){
$.getJSON(path+'/sy/strutsClassAction_eidt.action',{
cname:$("#cname").val(),
cteacher:$("#cteacher").val(),
pic:$("#pic").val(),
cid:data.cid
},function(data){
if(data>0){
layer.alert('编辑成功',{icon:1,title:'提示'},function(i){
layer.close(i);
layer.close(index);
$("#myFrom")[0].reset()
})
table.reload('testReload',{
page:{
curr:1
}
})
}
});
}
});
}
});
});
展示效果
