Layui是一款基于jQuery的前端UI框架,它提供了一套简洁、易用且功能丰富的界面元素和组件,帮助开发者快速构建现代化的Web界面。Layui的设计理念是"经典即时",主张简化繁琐的HTML结构和CSS样式,提供一种更加直观、高效的开发方式。
Layui提供了丰富的模块化组件,包括表单、表格、按钮、导航、弹窗等等,同时也支持响应式布局,适配不同大小的设备屏幕。它还提供了灵活的定制和扩展机制,开发者可以根据自己的需求进行样式定制、组件扩展和插件开发。
Layui的文档详细清晰,对于初学者来说很友好,它提供了大量的示例代码和使用说明,帮助开发者快速上手。同时,它也秉持着开源的精神,用户可以免费使用并进行二次开发。
总的来说,Layui是一个功能强大、易用性好的前端UI框架,适用于各种规模的Web开发项目。无论是个人开发者还是企业团队,都可以通过Layui提高开发效率,实现优秀的用户界面。
package com.YU.util;
import java.util.HashMap;
public class R extends HashMap{
public R data(String key, Object value) {
this.put(key, value);
return this;
}
public static R ok(int code, String msg) {
R r = new R();
r.data("success", true).data("code", code).data("msg", msg);
return r;
}
public static R error(int code, String msg) {
R r = new R();
r.data("success", false).data("code", code).data("msg", msg);
return r;
}
public static R ok(int code, String msg,Object data) {
R r = new R();
r.data("success", true).data("code", code).data("msg", msg).data("data", data);
return r;
}
public static R ok(int code, String msg, long count, Object data) {
R r = new R();
r.data("success", true).data("code", code).data("msg", msg).data("count", count).data("data", data);
return r;
}
}
2.1 使用R工具后的代码
public void userRole(HttpServletRequest req,HttpServletResponse reps) {
try {
PageBean pageBean = new PageBean();
pageBean.setRequest(req);
List
2.2原始代码
对比后发现,在将数据加入map集合后可以将重复的代码进行封装到R工具类中,减少很多重复代码,只需实现方法进行调用
通过BaseDao实现模糊查询,增删改
public List
package com.YU.web;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.YU.dao.UserDao;
import com.YU.entity.User;
import com.YU.framework.ActionSupport;
import com.YU.framework.ModelDriver;
import com.YU.util.PageBean;
import com.YU.util.R;
import com.YU.util.ResponseUtil;
public class UserAction extends ActionSupport implements ModelDriver{
private User user = new User();
private UserDao ud = new UserDao();
public void Register(HttpServletRequest req,HttpServletResponse reps) {
try {
//先获取最大的id数
int maxId = ud.getMaxId();
user = new User(maxId+1, req.getParameter("name"), req.getParameter("loginname"),
req.getParameter("password"), Long.parseLong(req.getParameter("rid")));
int register = ud.register(user);
ResponseUtil.writeJson(reps, register);
} catch (Exception e) {
e.printStackTrace();
}
}
public void Login(HttpServletRequest req,HttpServletResponse reps) {
try {
User u = ud.login(user);
ResponseUtil.writeJson(reps, u);
} catch (Exception e) {
e.printStackTrace();
}
}
public void userRole(HttpServletRequest req,HttpServletResponse reps) {
try {
PageBean pageBean = new PageBean();
pageBean.setRequest(req);
List
利用上面的R工具类配合dao方法实现数据库增删改查
userManage中的JS代码
let layer, $, table;
var row;
layui.use([ 'jquery', 'layer', 'table' ], function() {
layer = layui.layer, $ = layui.jquery, table = layui.table;
// 初始化数据表格
initTable();
// 绑定查询按钮的点击事件
$('#btn_search').click(function() {
query();
});
// 绑定新增按钮的点击事件
$('#btn_add').click(function() {
row = null;
open('新增');
});
});
// 1.初始化数据表格
function initTable() {
table.render({
elem : '#tb',
url : 'user.action?methodName=userRole',
toolbar : '#toolbarDemo' // 开启头部工具栏,并为其绑定左侧模板
,
defaultToolbar : [ 'filter', 'exports', 'print', { // 自定义头部工具栏右侧图标。如无需自定义,去除该参数即可
title : '提示',
layEvent : 'LAYTABLE_TIPS',
icon : 'layui-icon-tips'
} ],
title : '用户数据表',
cols : [ [ {
type : 'checkbox',
fixed : 'left'
}, {
field : 'id',
title : 'ID',
width : 80,
fixed : 'left',
unresize : true,
sort : true
}, {
field : 'loginName',
title : '账户名',
width : 120,
edit : 'text'
}, {
field : 'name',
title : '用户名',
width : 150,
edit : 'text',
templet : function(res) {
return '' + res.name + ''
}
}, {
field : 'pwd',
title : '密码',
width : 80,
edit : 'text',
sort : true
}, {
field : 'rname',
title : '角色名称',
width : 100
}, {
fixed : 'right',
title : '操作',
toolbar : '#barDemo',
width : 150
} ] ],
page : true
});
// 表格监控
table.on('tool(tb)', function(obj) {
//给行数据赋值
row = obj.data;
if (obj.event == "edit") {
open("编辑");
} else if (obj.event == "del") {
layer.confirm('确认删除吗?', {
icon : 3,
title : '提示'
}, function(index) {
$.post('user.action', {
'methodName' : 'del',
'id' : row.id
}, function(rs) {
if (rs.success) {
// 调用查询方法刷新数据
query();
} else {
layer.msg(rs.msg, function() {
});
}
}, 'json');
layer.close(index);
});
} else {
}
});
}
// 2.点击查询
function query() {
//表格重载
table.reload('tb', {
url : $("#ctx").val() + '/user.action', // 请求地址
method : 'POST', // 请求方式,GET或者POST
loading : true, // 是否显示加载条(默认 true)
page : true, // 是否分页
where : { // 设定异步数据接口的额外参数,任意设
'methodName' : 'userRole',
'name' : $('#name').val()
},
request : { // 自定义分页请求参数名
pageName : 'page', // 页码的参数名称,默认:page
limitName : 'rows' // 每页数据量的参数名,默认:limit
}
});
}
// 3.对话框
function open(title) {
layer.open({
type : 2, // layer提供了5种层类型。可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)
title : title,
area : [ '660px', '340px' ], // 宽高
skin : 'layui-layer-rim', // 样式类名
content : $("#ctx").val() + '/jsp/system/userEdit.jsp', // 书本编辑页面
btn : [ '保存', '关闭' ],
yes : function(index, layero) {
// 调用子页面中提供的getData方法,快速获取子页面的form表单数据 getData()子页面的方法
let data = $(layero).find("iframe")[0].contentWindow.getData();
console.log(data);
// 判断title标题
let methodName = "add";
if (title == "编辑")
methodName = "edit";
$.post('user.action?methodName=' + methodName,
data, function(rs) {
if (rs.success) {
// 关闭对话框
layer.closeAll();
// 调用查询方法刷新数据
query();
} else {
layer.msg(rs.msg, function() {
});
}
}, 'json');
},
btn2 : function(index, layero) {
layer.closeAll();
}
});
}
let layer,form,$;
layui.use(['layer','form','jquery'],function(){
layer=layui.layer,form=layui.form,$=layui.jquery;
initData();
});
function initData(){
if(null!=parent.row){
//因为layui.each内部的逻辑问题导致的所以要先深拷贝一份然后再去val
//parent.row:表格行对象
form.val('user',$.extend({}, parent.row||{}));
$('#name').attr('readonly','readonly');
}
}
function getData(){
return form.val('user');
}