• layui增删改查


    目录

    一,查

            1.主界面代码(mian.jsp)

            2.查询dao方法

            3.action代码

            4.js代码

    二,增

            1.增加dao方法

            2.增加action代码

            4.弹出的模态框

            5.js代码

    三,删

            1.删除dao方法

            2.删除action代码

            4.删除的模态框

            5.js代码

    四,改

            1.修改dao方法

            2.修改action代码

            4.修改的模态框

            5.js代码        

    五,完整展示


    一,查

            1.主界面代码(mian.jsp)

    1. <%@ page language="java" contentType="text/html; charset=UTF-8"
    2. pageEncoding="UTF-8"%>
    3. <%@include file="/commom/header.jsp" %>
    4. html >
    5. <html>
    6. <head>
    7. <script src="static/js/mian.js">script>
    8. head>
    9. <body class="layui-layout-body">
    10. <div class="layui-layout layui-layout-admin">
    11. <div class="layui-header">
    12. <div class="layui-logo">layui 后台布局div>
    13. <ul class="layui-nav layui-layout-left">
    14. <li class="layui-nav-item"><a href="">控制台a>li>
    15. <li class="layui-nav-item"><a href="">商品管理a>li>
    16. <li class="layui-nav-item"><a href="">用户a>li>
    17. <li class="layui-nav-item">
    18. <a href="javascript:;">其它系统a>
    19. <dl class="layui-nav-child">
    20. <dd><a href="">邮件管理a>dd>
    21. <dd><a href="">消息管理a>dd>
    22. <dd><a href="">授权管理a>dd>
    23. dl>
    24. li>
    25. ul>
    26. <ul class="layui-nav layui-layout-right">
    27. <li class="layui-nav-item">
    28. <a href="javascript:;"><img src="http://t.cn/RCzsdCq" class="layui-nav-img">贤心a>
    29. <dl class="layui-nav-child">
    30. <dd><a href="">基本资料a>dd>
    31. <dd><a href="">安全设置a>dd>
    32. dl>
    33. li>
    34. <li class="layui-nav-item"><a href="">退了a>li>
    35. ul>
    36. div>
    37. <div class="layui-side layui-bg-black">
    38. <div class="layui-side-scroll">
    39. <ul class="layui-nav layui-nav-tree" id="menu" lay-filter="test">
    40. ul>
    41. div>
    42. div>
    43. <div class="layui-body">
    44. <div style="padding: 15px;">
    45. <div class="layui-tab" lay-filter="demo" lay-allowclose="true">
    46. <ul class="layui-tab-title">
    47. <li class="layui-this" lay-id="-1">首页li>
    48. ul>
    49. <div class="layui-tab-content">
    50. <div class="layui-tab-item layui-show">首页内容div>
    51. div>
    52. div>
    53. div>
    54. div>
    55. <div class="layui-footer">
    56. © layui.com - 底部固定区域
    57. div>
    58. div>
    59. <script>
    60. script>
    61. body>
    62. html>

    效果:

            2.查询dao方法

    要查询表中的数据:

     dao方法:

    1. //查询用户信息及对应的角色,角色是通过case when得来的
    2. public List> list(User user,PageBean pageBean) throws Exception{
    3. String sql = "select * \r\n" +
    4. ",(case rid \r\n" +
    5. "when 1 then '管理者' \r\n" +
    6. "when 2 then '发起者' \r\n" +
    7. "when 3 then '审批者' \r\n" +
    8. "when 4 then '参与者' \r\n" +
    9. "when 5 then '会议室管理员' \r\n" +
    10. "else '其他' end \r\n" +
    11. ") roleName \r\n" +
    12. "from \r\n" +
    13. "t_oa_user where 1=1";
    14. String name = user.getName();
    15. if(StringUtils.isNotBlank(name)) {
    16. sql+=" and name like '%"+name+"%' ";
    17. }
    18. //实体类的属性完全包含数据库查询出来的列段的时候使用
    19. //super.executeUpdate(sql, User.cl, pageBean)
    20. //返回List>对应的是联表查询,单个实体类对象不完全包含查询的列段
    21. return super.executeQuery(sql, pageBean);
    22. }

    可以测试一下:

    先选中要测试的dao,然后输入junit,再选择第一个然后点击next

    选择一些按钮: 

     

     则自动生成:

    查询的dao方法没问题 

     

            3.action代码

     

    1. //用户查询
    2. public String list(HttpServletRequest req,HttpServletResponse resp) {
    3. try {
    4. PageBean pageBean = new PageBean();
    5. pageBean.setRequest(req);
    6. List> users = userdao.list(user, pageBean);
    7. //注意:layui中的数据的格式
    8. ResponseUtil.writeJson(resp, R.ok(0, "用户数据查询成功",pageBean.getTotal(),users));
    9. } catch (Exception e) {
    10. e.printStackTrace();
    11. try {
    12. ResponseUtil.writeJson(resp,R.error(0, "用户数据查询失败"));
    13. } catch (Exception e1) {
    14. e1.printStackTrace();
    15. }
    16. }
    17. return null;
    18. }

            4.js代码

    此时还不能直接加载数据:

    1. //1.初始化数据表格
    2. function initTable(){
    3. table.render({ //执行渲染
    4. elem: '#tb', //指定原始表格元素选择器(推荐id选择器)
    5. // url: 'user.action?methodName=list', //请求地址
    6. height: 340, //自定义高度
    7. loading: false, //是否显示加载条(默认 true)
    8. cols: [[ //设置表头
    9. {field: 'id', title: '用户编号', width: 120},
    10. {field: 'name', title: '用户名', width: 120},
    11. {field: 'loginName', title: '登录账号', width: 140},
    12. {field: '', title: '操作', width: 220,toolbar:'#toolbar'},
    13. ]]
    14. });
    15. }

     还没有数据:

     点击查询才会有数据:

    1. //2.点击查询
    2. function query(){
    3. table.reload('tb', {
    4. url: $("#ctx").val()+'/user.action', //请求地址
    5. method: 'POST', //请求方式,GET或者POST
    6. loading: true, //是否显示加载条(默认 true)
    7. page: true, //是否分页
    8. where: { //设定异步数据接口的额外参数,任意设
    9. 'methodName':'list',
    10. 'name':$('#name').val()
    11. },
    12. request: { //自定义分页请求参数名
    13. pageName: 'page', //页码的参数名称,默认:page
    14. limitName: 'rows' //每页数据量的参数名,默认:limit
    15. }
    16. });
    17. }

    点击查询便会有数据了: 

     

     还可进行查询:

     

    二,增

            1.增加dao方法

    1. //增加
    2. public int add(User user) throws Exception {
    3. String sql = "insert into t_oa_user(name,loginName,pwd) values(?,?,?)";
    4. return super.executeUpdate(sql, user, new String[] {"name","loginName","pwd"});
    5. }

     测试一下:

    返回为1说明增加成功:

    数据库也有: 

     

            2.增加action代码

    1. //用户增加
    2. public String add(HttpServletRequest req,HttpServletResponse resp) {
    3. try {
    4. //影响行数
    5. int rs = userdao.add(user);
    6. if(rs>0) {
    7. ResponseUtil.writeJson(resp, R.ok(200, "用户数据新增成功"));
    8. }
    9. else {
    10. ResponseUtil.writeJson(resp,R.error(0, "用户数据新增失败"));
    11. }
    12. } catch (Exception e) {
    13. e.printStackTrace();
    14. try {
    15. ResponseUtil.writeJson(resp,R.error(0, "用户数据新增失败"));
    16. } catch (Exception e1) {
    17. e1.printStackTrace();
    18. }
    19. }
    20. return null;
    21. }

            4.弹出的模态框

     

            5.js代码

    注意layui版本问题:

    1. //3.对话框
    2. function open(title){
    3. layer.open({
    4. type: 2, //layer提供了5种层类型。可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)
    5. title:title,
    6. area: ['660px', '340px'], //宽高
    7. skin: 'layui-layer-rim', //样式类名
    8. content: $("#ctx").val()+'/jsp/system/userEdit.jsp', //书本编辑页面
    9. btn:['保存','关闭','...'],
    10. yes: function(index, layero){
    11. //jquery.find
    12. //调用子页面中提供的getData方法,快速获取子页面的form表单数据
    13. let data= $(layero).find("iframe")[0].contentWindow.getData();
    14. console.log(data);
    15. //判断title标题
    16. let methodName="add";
    17. if(title=="编辑")
    18. methodName="edit";
    19. $.post($("#ctx").val()+'/user.action?methodName='+methodName,
    20. data,function(rs){
    21. if(rs.success){
    22. //关闭对话框
    23. layer.closeAll();
    24. //调用查询方法刷新数据
    25. query();
    26. }else{
    27. layer.msg(rs.msg,function(){});
    28. }
    29. },'json');
    30. },
    31. btn2: function(index, layero){
    32. layer.closeAll();
    33. },
    34. btn3: function(index, layero){
    35. layer.msg("批量新增");
    36. return false;
    37. },
    38. btn4: function(index, layero){
    39. layer.closeAll("批量新增ruojuan");
    40. }
    41. });
    42. }

     补充:

    添加相关按钮:

     

     

    三,删

            1.删除dao方法

    1. //删
    2. public int del(User user) throws Exception {
    3. String sql = "delete from t_oa_user where id=?";
    4. return super.executeUpdate(sql, user, new String[] {"id"});
    5. }

            2.删除action代码

    1. //用户删除
    2. public String del(HttpServletRequest req,HttpServletResponse resp) {
    3. try {
    4. //影响行数
    5. int rs = userdao.del(user);
    6. if(rs>0) {
    7. ResponseUtil.writeJson(resp, R.ok(200, "用户数据删除成功"));
    8. }
    9. else {
    10. ResponseUtil.writeJson(resp,R.error(0, "用户数据删除失败"));
    11. }
    12. } catch (Exception e) {
    13. e.printStackTrace();
    14. try {
    15. ResponseUtil.writeJson(resp,R.error(0, "用户数据删除失败"));
    16. } catch (Exception e1) {
    17. e1.printStackTrace();
    18. }
    19. }
    20. return null;
    21. }

            4.删除的模态框

     

            5.js代码

    1. //在页面中的中必须配置lay-filter="tb_goods"属性才能触发属性!!!
    2. table.on('tool(tb)', function (obj) {
    3. row = obj.data;
    4. if (obj.event == "edit") {
    5. open("编辑");
    6. }else if(obj.event == "del"){
    7. layer.confirm('确认删除吗?', {icon: 3, title:'提示'}, function(index){
    8. $.post($("#ctx").val()+'/user.action',{
    9. 'methodName':'del',
    10. 'id':row.id
    11. },function(rs){
    12. if(rs.success){
    13. //调用查询方法刷新数据
    14. query();
    15. }else{
    16. layer.msg(rs.msg,function(){});
    17. }
    18. },'json');
    19. layer.close(index);
    20. });
    21. }else{
    22. }
    23. });
    24. 四,改

              1.修改dao方法

      1. //改
      2. public int edit(User user) throws Exception {
      3. String sql = "update t_oa_user set name=?,loginName=?,pwd=? where id=?";
      4. return super.executeUpdate(sql, user, new String[] {"name","loginName","pwd","id"});
      5. }

              2.修改action代码

      1. //用户修改
      2. public String edit(HttpServletRequest req,HttpServletResponse resp) {
      3. try {
      4. //影响行数
      5. int rs = userdao.edit(user);
      6. if(rs>0) {
      7. ResponseUtil.writeJson(resp, R.ok(200, "用户数据修改成功"));
      8. }
      9. else {
      10. ResponseUtil.writeJson(resp,R.error(0, "用户数据修改失败"));
      11. }
      12. } catch (Exception e) {
      13. e.printStackTrace();
      14. try {
      15. ResponseUtil.writeJson(resp,R.error(0, "用户数据修改失败"));
      16. } catch (Exception e1) {
      17. e1.printStackTrace();
      18. }
      19. }
      20. return null;
      21. }

              4.修改的模态框

       

              5.js代码        

      代码:

      1. let layer,form,$;
      2. layui.use(['layer','form','jquery'],function(){
      3. layer=layui.layer,form=layui.form,$=layui.jquery;
      4. initData();
      5. });
      6. function initData(){
      7. console.log(parent.row);
      8. if(null!=parent.row){
      9. //因为layui.each内部的逻辑问题导致的所以要先深拷贝一份然后再去val
      10. //parent.row:表格行对象
      11. //table的数据在父页面userManager.js
      12. //点击编辑按钮的时候,当前
      13. form.val('user',$.extend({}, parent.row||{}));
      14. $('#name').attr('readonly','readonly');
      15. }
      16. }
      17. function getData(){
      18. //
      19. //取 user from中的值
      20. return form.val('user');
      21. }

      五,完整展示

      userdao:

      1. package com.zking.dao;
      2. import java.sql.SQLException;
      3. import java.util.List;
      4. import java.util.Map;
      5. import com.zking.entity.User;
      6. import com.zking.util.BaseDao;
      7. import com.zking.util.PageBean;
      8. import com.zking.util.StringUtils;
      9. public class UserDao extends BaseDao{
      10. public User login(User user) throws Exception {
      11. String sql = "select * from t_oa_user where loginName = '"+user.getLoginName()+"' and pwd = '"+user.getPwd()+"'";
      12. List users = super.executeQuery(sql, User.class,null);
      13. //根据sql查询符合条件的用户,通常只会返回一条数据
      14. return users == null || users.size() ==0 ? null : users.get(0);
      15. //return super.executeQuery(sql, clz, pageBean);
      16. }
      17. //查询用户信息及对应的角色,角色是通过case when得来的
      18. public List> list(User user,PageBean pageBean) throws Exception{
      19. String sql = "select * \r\n" +
      20. ",(case rid \r\n" +
      21. "when 1 then '管理者' \r\n" +
      22. "when 2 then '发起者' \r\n" +
      23. "when 3 then '审批者' \r\n" +
      24. "when 4 then '参与者' \r\n" +
      25. "when 5 then '会议室管理员' \r\n" +
      26. "else '其他' end \r\n" +
      27. ") roleName \r\n" +
      28. "from \r\n" +
      29. "t_oa_user where 1=1";
      30. String name = user.getName();
      31. if(StringUtils.isNotBlank(name)) {
      32. sql+=" and name like '%"+name+"%' ";
      33. }
      34. //实体类的属性完全包含数据库查询出来的列段的时候使用
      35. //super.executeUpdate(sql, User.cl, pageBean)
      36. //返回List>对应的是联表查询,单个实体类对象不完全包含查询的列段
      37. return super.executeQuery(sql, pageBean);
      38. }
      39. //增加
      40. public int add(User user) throws Exception {
      41. String sql = "insert into t_oa_user(name,loginName,pwd) values(?,?,?)";
      42. return super.executeUpdate(sql, user, new String[] {"name","loginName","pwd"});
      43. }
      44. //删
      45. public int del(User user) throws Exception {
      46. String sql = "delete from t_oa_user where id=?";
      47. return super.executeUpdate(sql, user, new String[] {"id"});
      48. }
      49. //改
      50. public int edit(User user) throws Exception {
      51. String sql = "update t_oa_user set name=?,loginName=?,pwd=? where id=?";
      52. return super.executeUpdate(sql, user, new String[] {"name","loginName","pwd","id"});
      53. }
      54. }

      userAction:

      1. package com.zking.web;
      2. import java.util.HashMap;
      3. import java.util.List;
      4. import java.util.Map;
      5. import javax.servlet.http.HttpServletRequest;
      6. import javax.servlet.http.HttpServletResponse;
      7. import com.zking.dao.UserDao;
      8. import com.zking.entity.User;
      9. import com.zking.framework.ActionSupport;
      10. import com.zking.framework.ModelDriver;
      11. import com.zking.util.PageBean;
      12. import com.zking.util.R;
      13. import com.zking.util.ResponseUtil;
      14. public class UserAction extends ActionSupport implements ModelDriver{
      15. private User user = new User();
      16. private UserDao userdao = new UserDao();
      17. //写一个方法处理前台的请求
      18. // public String login(HttpServletRequest req,HttpServletResponse resp) {
      19. //
      20. // Map map = new HashMap();
      21. // if("ruojuan".equals(user.getUsername())&& "1234567".equals(user.getPassword())) {
      22. // //登陆成功
      23. // map.put("code", 200);
      24. // map.put("msg","登陆成功");
      25. // }
      26. // else {
      27. // //登陆失败
      28. // map.put("code", 0);
      29. // map.put("msg","登陆失败");
      30. // }
      31. // try {
      32. // ResponseUtil.writeJson(resp, map);
      33. // } catch (Exception e) {
      34. // // TODO Auto-generated catch block
      35. // e.printStackTrace();
      36. // }
      37. // //return super.execute(req, resp);
      38. // return null;
      39. //
      40. // }
      41. public String login(HttpServletRequest req,HttpServletResponse resp) {
      42. try {
      43. User u = userdao.login(user);
      44. if(u !=null) {
      45. //登陆成功
      46. //ResponseUtil.writeJson(resp, new R().data("code",200).data("msg","登陆成功"));
      47. ResponseUtil.writeJson(resp,R.ok(200, "成功"));
      48. }
      49. else {
      50. //登陆失败
      51. //ResponseUtil.writeJson(resp, new R().data("code",0).data("msg","登陆失败"));
      52. ResponseUtil.writeJson(resp,R.error(0, "用户名或密码错误"));
      53. }
      54. } catch (Exception e) {
      55. e.printStackTrace();
      56. try {
      57. ResponseUtil.writeJson(resp,R.error(0, "用户名或密码错误"));
      58. } catch (Exception e1) {
      59. e1.printStackTrace();
      60. }
      61. }
      62. return null;
      63. }
      64. //用户查询
      65. public String list(HttpServletRequest req,HttpServletResponse resp) {
      66. try {
      67. PageBean pageBean = new PageBean();
      68. pageBean.setRequest(req);
      69. List> users = userdao.list(user, pageBean);
      70. //注意:layui中的数据的格式
      71. ResponseUtil.writeJson(resp, R.ok(0, "用户数据查询成功",pageBean.getTotal(),users));
      72. } catch (Exception e) {
      73. e.printStackTrace();
      74. try {
      75. ResponseUtil.writeJson(resp,R.error(0, "用户数据查询失败"));
      76. } catch (Exception e1) {
      77. e1.printStackTrace();
      78. }
      79. }
      80. return null;
      81. }
      82. //用户增加
      83. public String add(HttpServletRequest req,HttpServletResponse resp) {
      84. try {
      85. //影响行数
      86. int rs = userdao.add(user);
      87. if(rs>0) {
      88. ResponseUtil.writeJson(resp, R.ok(200, "用户数据新增成功"));
      89. }
      90. else {
      91. ResponseUtil.writeJson(resp,R.error(0, "用户数据新增失败"));
      92. }
      93. } catch (Exception e) {
      94. e.printStackTrace();
      95. try {
      96. ResponseUtil.writeJson(resp,R.error(0, "用户数据新增失败"));
      97. } catch (Exception e1) {
      98. e1.printStackTrace();
      99. }
      100. }
      101. return null;
      102. }
      103. //用户删除
      104. public String del(HttpServletRequest req,HttpServletResponse resp) {
      105. try {
      106. //影响行数
      107. int rs = userdao.del(user);
      108. if(rs>0) {
      109. ResponseUtil.writeJson(resp, R.ok(200, "用户数据删除成功"));
      110. }
      111. else {
      112. ResponseUtil.writeJson(resp,R.error(0, "用户数据删除失败"));
      113. }
      114. } catch (Exception e) {
      115. e.printStackTrace();
      116. try {
      117. ResponseUtil.writeJson(resp,R.error(0, "用户数据删除失败"));
      118. } catch (Exception e1) {
      119. e1.printStackTrace();
      120. }
      121. }
      122. return null;
      123. }
      124. //用户修改
      125. public String edit(HttpServletRequest req,HttpServletResponse resp) {
      126. try {
      127. //影响行数
      128. int rs = userdao.edit(user);
      129. if(rs>0) {
      130. ResponseUtil.writeJson(resp, R.ok(200, "用户数据修改成功"));
      131. }
      132. else {
      133. ResponseUtil.writeJson(resp,R.error(0, "用户数据修改失败"));
      134. }
      135. } catch (Exception e) {
      136. e.printStackTrace();
      137. try {
      138. ResponseUtil.writeJson(resp,R.error(0, "用户数据修改失败"));
      139. } catch (Exception e1) {
      140. e1.printStackTrace();
      141. }
      142. }
      143. return null;
      144. }
      145. @Override
      146. public User getModel() {
      147. // TODO Auto-generated method stub
      148. return user;
      149. }
      150. }

      userManeger:

      1. <%@ page language="java" contentType="text/html; charset=UTF-8"
      2. pageEncoding="UTF-8"%>
      3. <%@include file="/commom/header.jsp" %>
      4. html >
      5. <html>
      6. <head>
      7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      8. <script src="static/js/system/userManage.js">script>
      9. <title>用户管理title>
      10. head>
      11. <body>
      12. <div class="layui-form-item">
      13. <div class="layui-inline">
      14. <label class="layui-form-label">用户名:label>
      15. <div class="layui-input-inline">
      16. <input type="text" id="name" placeholder="请输入用户名" autocomplete="off" class="layui-input">
      17. div>
      18. div>
      19. <div class="layui-inline">
      20. <div class="layui-input-inline">
      21. <button id="btn_search" type="button" class="layui-btn layui-btn-normal">
      22. <i class="layui-icon layui-icon-search">i>
      23. 查询
      24. button>
      25. <button id="btn_add" type="button" class="layui-btn">新增button>
      26. div>
      27. div>
      28. div>
      29. <table id="tb" lay-filter="tb" class="layui-table" style="margin-top:-15px;">table>
      30. <script type="text/html" id="toolbar">
      31. <button class="layui-btn layui-btn-sm" lay-event="edit">编辑button>
      32. <button class="layui-btn layui-btn-sm" lay-event="del">删除button>
      33. <button class="layui-btn layui-btn-sm" lay-event="reset">重置密码button>
      34. script>
      35. body>
      36. html>

      userManger.js:

      1. let layer,$,table;
      2. var row;
      3. layui.use(['jquery', 'layer', 'table'], function(){
      4. layer = layui.layer
      5. ,$ = layui.jquery
      6. ,table = layui.table;
      7. //初始化数据表格
      8. initTable();
      9. //绑定查询按钮的点击事件
      10. $('#btn_search').click(function(){
      11. query();
      12. });
      13. //绑定新增按钮的点击事件
      14. $('#btn_add').click(function(){
      15. row=null;
      16. open('新增');
      17. });
      18. });
      19. //1.初始化数据表格
      20. function initTable(){
      21. table.render({ //执行渲染
      22. elem: '#tb', //指定原始表格元素选择器(推荐id选择器)
      23. // url: 'user.action?methodName=list', //请求地址
      24. height: 340, //自定义高度
      25. loading: false, //是否显示加载条(默认 true)
      26. cols: [[ //设置表头
      27. {field: 'id', title: '用户编号', width: 120},
      28. {field: 'name', title: '用户名', width: 120},
      29. {field: 'loginName', title: '登录账号', width: 140},
      30. {field: '', title: '操作', width: 220,toolbar:'#toolbar'},
      31. ]]
      32. });
      33. //在页面中的
      中必须配置lay-filter="tb_goods"属性才能触发属性!!!
    25. table.on('tool(tb)', function (obj) {
    26. row = obj.data;
    27. if (obj.event == "edit") {
    28. open("编辑");
    29. }else if(obj.event == "del"){
    30. layer.confirm('确认删除吗?', {icon: 3, title:'提示'}, function(index){
    31. $.post($("#ctx").val()+'/user.action',{
    32. 'methodName':'del',
    33. 'id':row.id
    34. },function(rs){
    35. if(rs.success){
    36. //调用查询方法刷新数据
    37. query();
    38. }else{
    39. layer.msg(rs.msg,function(){});
    40. }
    41. },'json');
    42. layer.close(index);
    43. });
    44. }else{
    45. }
    46. });
    47. }
    48. //2.点击查询
    49. function query(){
    50. table.reload('tb', {
    51. url: $("#ctx").val()+'/user.action', //请求地址
    52. method: 'POST', //请求方式,GET或者POST
    53. loading: true, //是否显示加载条(默认 true)
    54. page: true, //是否分页
    55. where: { //设定异步数据接口的额外参数,任意设
    56. 'methodName':'list',
    57. 'name':$('#name').val()
    58. },
    59. request: { //自定义分页请求参数名
    60. pageName: 'page', //页码的参数名称,默认:page
    61. limitName: 'rows' //每页数据量的参数名,默认:limit
    62. }
    63. });
    64. }
    65. //3.对话框
    66. function open(title){
    67. layer.open({
    68. type: 2, //layer提供了5种层类型。可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)
    69. title:title,
    70. area: ['660px', '340px'], //宽高
    71. skin: 'layui-layer-rim', //样式类名
    72. content: $("#ctx").val()+'/jsp/system/userEdit.jsp', //书本编辑页面
    73. btn:['保存','关闭','...'],
    74. yes: function(index, layero){
    75. //jquery.find
    76. //调用子页面中提供的getData方法,快速获取子页面的form表单数据
    77. let data= $(layero).find("iframe")[0].contentWindow.getData();
    78. console.log(data);
    79. //判断title标题
    80. let methodName="add";
    81. if(title=="编辑")
    82. methodName="edit";
    83. $.post($("#ctx").val()+'/user.action?methodName='+methodName,
    84. data,function(rs){
    85. if(rs.success){
    86. //关闭对话框
    87. layer.closeAll();
    88. //调用查询方法刷新数据
    89. query();
    90. }else{
    91. layer.msg(rs.msg,function(){});
    92. }
    93. },'json');
    94. },
    95. btn2: function(index, layero){
    96. layer.closeAll();
    97. },
    98. btn3: function(index, layero){
    99. layer.msg("批量新增");
    100. return false;
    101. },
    102. btn4: function(index, layero){
    103. layer.closeAll("批量新增ruojuan");
    104. }
    105. });
    106. }
    107. userEdit.jsp:

      1. <%@ page language="java" contentType="text/html; charset=UTF-8"
      2. pageEncoding="UTF-8"%>
      3. <%@include file="/commom/header.jsp"%>
      4. html>
      5. <html>
      6. <head>
      7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      8. <script type="text/javascript" src="${pageContext.request.contextPath }/static/js/system/userEdit.js">script>
      9. <title>用户新增title>
      10. head>
      11. <style>
      12. .layui-form-select dl{
      13. max-height:150px;
      14. }
      15. style>
      16. <body>
      17. <div style="padding:10px;">
      18. <form class="layui-form layui-form-pane" lay-filter="user">
      19. <input type="hidden" name="id"/>
      20. <div class="layui-form-item">
      21. <label class="layui-form-label">用户名称label>
      22. <div class="layui-input-block">
      23. <input type="text" id="name" name="name" autocomplete="off" placeholder="请输入用户名" class="layui-input">
      24. div>
      25. div>
      26. <div class="layui-form-item">
      27. <label class="layui-form-label">用户角色label>
      28. <div class="layui-input-block">
      29. <select name="rid">
      30. <option value="">---请选择---option>
      31. <option value="1">管理员option>
      32. <option value="2">发起者option>
      33. <option value="3">审批者option>
      34. <option value="4">参与者option>
      35. <option value="5">会议管理员option>
      36. select>
      37. div>
      38. div>
      39. <div class="layui-form-item">
      40. <label class="layui-form-label">登录账号label>
      41. <div class="layui-input-block">
      42. <input type="text" name="loginName" lay-verify="required" placeholder="请输入账号" autocomplete="off" class="layui-input">
      43. div>
      44. div>
      45. <div class="layui-form-item">
      46. <label class="layui-form-label">登录密码label>
      47. <div class="layui-input-block">
      48. <input type="password" name="pwd" placeholder="请输入密码" autocomplete="off" class="layui-input">
      49. div>
      50. div>
      51. form>
      52. div>
      53. body>
      54. html>

      userEdit.js:

      1. let layer,form,$;
      2. layui.use(['layer','form','jquery'],function(){
      3. layer=layui.layer,form=layui.form,$=layui.jquery;
      4. initData();
      5. });
      6. function initData(){
      7. console.log(parent.row);
      8. if(null!=parent.row){
      9. //因为layui.each内部的逻辑问题导致的所以要先深拷贝一份然后再去val
      10. //parent.row:表格行对象
      11. //table的数据在父页面userManager.js
      12. //点击编辑按钮的时候,当前
      13. form.val('user',$.extend({}, parent.row||{}));
      14. $('#name').attr('readonly','readonly');
      15. }
      16. }
      17. function getData(){
      18. //
      19. //取 user from中的值
      20. return form.val('user');
      21. }

    108. 相关阅读:
      SpringMVC入门(工作原理、框架流程、小实例的创建)
      JVM参数调优
      linux查看es节点使用情况,elasticsearch(es) 如何查看当前集群中哪个节点是主节点(master)
      每日一题 2678. 老人的数目(简单)
      微服务整合公众号告警系统
      疫情重压下,屈臣氏为何上半年仍盈利?
      ElasticSearch 批量查询
      LeetCode 19. 删除链表的倒数第 N 个结点
      笔试强训(二)
      实验9 交换网络综合实验
    109. 原文地址:https://blog.csdn.net/weixin_67338832/article/details/125880166