springboot+mybatisplus+layui+restful实现弹出层异步提交表单

简介: springboot+mybatisplus+layui+restful实现弹出层异步提交表单

1.News.java

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("sys_news")
@ToString
public class News implements Serializable {
    private static final long serialVersionUID=1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    private String title;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date newstime;
    private String content;
}

2.NewsVo.java

@Data
@EqualsAndHashCode(callSuper = false)
public class NewsVo extends News {
    private Integer page=1;
    private Integer limit=10;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date startDate;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date endDate;
}

3.ResultObj.java

@Data
@AllArgsConstructor
@NoArgsConstructor
public class ResultObj {
  //添加或者失败的提示消息
  private Integer code;
    private String msg;
}

4.NewsService.java

public interface NewsService extends IService<News> {
}

5.NewsServiceImpl.java

@Service
@Transactional
public class NewsServiceImpl extends ServiceImpl<NewsMapper, News> implements NewsService {
}

6.NewsMapper.java


@Mapper
public interface NewsMapper extends BaseMapper<News> {
}


7.NewsController.java


@RestController
@RequestMapping("news")
public class NewsController {
    @Autowired
    private NewsService newsService;
  /**
     * 添加新闻 addNews
     */
    @RequestMapping("addNews")
    public ResultObj addNews(NewsVo newsVo){
        boolean save = newsService.save(newsVo);
        if (save = true){
            return new ResultObj(200,"添加成功!");
        }else {
            return new ResultObj(-1,"添加失败!");
        }
    }
}


8.页面

<!DOCTYPE html>
<html xmlns:th="http://www.w3.org/1999/xhtml">
<head>
  <meta charset="utf-8">
  <title>首页--工作台</title>
  <meta name="renderer" content="webkit">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <meta name="apple-mobile-web-app-status-bar-style" content="black">
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="format-detection" content="telephone=no">
  <link rel="stylesheet" th:href="@{/resources/layui/css/layui.css}" media="all" />
  <link rel="stylesheet" th:href="@{/resources/css/public.css}" media="all" />
</head>
<body class="childrenBody">
  <!--表单开始-->
  <form class="layui-form" id="searchFrm" method="post" action="">
    <!--搜索框-->
    <div class="layui-inline">
      <label class="layui-form-label">按开始日期</label>
      <div class="layui-input-inline">
        <input type="text" name="startDate" id="startDate"  placeholder="yyyy-MM-dd"  class="layui-input">
      </div>
    </div>
    <div class="layui-inline">
      <label class="layui-form-label">按结束日期</label>
      <div class="layui-input-inline">
        <input type="text" name="endDate" id="endDate"  placeholder="yyyy-MM-dd"  class="layui-input">
      </div>
    </div>
    <div class="layui-form-item">
      <div class="layui-inline">
        <label class="layui-form-label">单选下拉框</label>
        <div class="layui-input-inline">
          <select name="typeid" id="search_typeid">
            <option value="1">请选择</option>
          </select>
        </div>
      </div>
    </div>
    <div class="layui-form-item">
      <div class="layui-input-block">
        <button type="button" class="layui-btn" lay-submit="" lay-filter="doSearch">查询</button>
        <button type="reset" class="layui-btn layui-btn-primary">重置</button>
        <button type="button" id="doAdd" class="layui-btn layui-btn-primary">添加</button>
      </div>
    </div>
  </form>
  <!--表格容器-->
  <table id="demo" lay-filter="test"></table>
  <!--表格容器结束-->
  <!--添加新闻数据的弹出层开始-->
  <div id="addNewsDiv" style="display: none;">
    <form id="dataFrm" method="post" class="layui-form" action="">
      <div class="layui-form-item">
        <label class="layui-form-label">标题</label>
        <div class="layui-input-block">
          <input type="text" name="title"  placeholder="请输入标题" autocomplete="off" class="layui-input">
        </div>
        <div class="layui-inline">
          <label class="layui-form-label">按结束日期</label>
          <div class="layui-input-inline">
            <input type="text" name="endDate" id="newstime"  placeholder="yyyy-MM-dd"  class="layui-input">
          </div>
        </div>
      </div>
      <div class="layui-form-item layui-form-text">
        <label class="layui-form-label">内容文本域</label>
        <div class="layui-input-block">
          <textarea name="content" placeholder="请输入内容" class="layui-textarea"></textarea>
        </div>
      </div>
      <div class="layui-form-item">
        <div class="layui-input-block">
          <button  class="layui-btn" lay-submit lay-filter="doSubmit">立即提交</button>
          <button type="reset" class="layui-btn layui-btn-primary">重置</button>
        </div>
      </div>
    </form>
  </div>
  <!--添加数据的弹出层结束-->
  <script type="text/javascript" th:src="@{/resources/layui/layui.js}"></script>
  <script type="text/javascript">
    //加载layui
    layui.use(['form','element','layer','laydate','jquery','table'],function(){
      var laydate = layui.laydate;
      var form = layui.form, $ = layui.jquery;
      var table = layui.table;
      //第一个实例
      var tableIns = table.render({
        elem: '#demo'
        ,height: 312
        ,url: '/news/listNews' //数据接口
        ,page: true //开启分页
        ,cols: [ [ //表头
          {field: 'id', title: 'ID', width:80, sort: true, fixed: 'left'}
          ,{field: 'title', title: '用户名', width:80}
          ,{field: 'content', title: '性别', width:80, sort: true}
        ] ]
      });
      //绑定时间选择器
      laydate.render({
        elem:'#newstime',
        type:'datetime'
      });
      //获取到 初始化下拉查询列表
      $.get("/type/loadAllType",function (objs) {
        var types = objs.data;
        var search_typeid = $("#search_typeid");
        $.each(types,function (index,item) {
          //追加数据
          search_typeid.append("<potion value="+item.id+">"+item.name+"</potion>");
        });
        //重新渲染
        form.render("select");
      });
      //模糊查询
      form.on("submit(doSearch)",function (data) {
        //ajax方式发送数据
        $.post("/news/listNews",data.field,function () {
          tableIns.reload({
            url:'/news/listNews',
            where:data.field
          });
        return false;
        });
        //添加弹出层
        var mainIndex;
        $("#doAdd").on("click",function () {
          mainIndex = layer.open({
            type:1,
            content:$("#addNewsDiv"),
            area:['500px','600px']
            //弹出层加载成功之后success:function(获取div追加数据){}
          })
        });
        //监控提交弹出层的按钮
        form.on("submit(doSubmit)",function (data) {
          //发送数据
          $.post("/news/addNews",data.field,function (res) {
            layer.msg(res.msg); //弹出来看看结果
            if(res.code==200){ //添加成功,询问是否关闭
              layer.confirm('是否要关闭?',{
                btn: ['继续','取消']
              },function () {
                $("#dataFrm")[0].reset();
              },function () {//关闭弹窗
                layer.close(mainIndex);
              });
            }
            //无论成功还是失败,父页面 要刷新
            tableIns.reload();
          });
          return false;
        });
      });
    });
  </script>
</body>
</html>


目录
相关文章
|
6天前
|
Java 网络架构 Spring
springboot中restful风格请求的使用
本文介绍了在Spring Boot中如何使用RESTful风格的请求,包括创建HTML表单页面、在application.yaml配置文件中开启REST表单支持、编写Controller层及对应映射处理,并进行服务启动和访问测试。HTML表单默认只支持GET和POST请求,因此对于DELETE和PUT请求,需要使用隐藏域`_method`来支持。
springboot中restful风格请求的使用
|
6天前
|
XML Java 关系型数据库
springboot 集成 mybatis-plus 代码生成器
本文介绍了如何在Spring Boot项目中集成MyBatis-Plus代码生成器,包括导入相关依赖坐标、配置快速代码生成器以及自定义代码生成器模板的步骤和代码示例,旨在提高开发效率,快速生成Entity、Mapper、Mapper XML、Service、Controller等代码。
springboot 集成 mybatis-plus 代码生成器
|
6天前
|
SQL XML Java
springboot整合mybatis-plus及mybatis-plus分页插件的使用
这篇文章介绍了如何在Spring Boot项目中整合MyBatis-Plus及其分页插件,包括依赖引入、配置文件编写、SQL表创建、Mapper层、Service层、Controller层的创建,以及分页插件的使用和数据展示HTML页面的编写。
springboot整合mybatis-plus及mybatis-plus分页插件的使用
|
25天前
|
前端开发 JavaScript Java
技术分享:使用Spring Boot3.3与MyBatis-Plus联合实现多层次树结构的异步加载策略
在现代Web开发中,处理多层次树形结构数据是一项常见且重要的任务。这些结构广泛应用于分类管理、组织结构、权限管理等场景。为了提升用户体验和系统性能,采用异步加载策略来动态加载树形结构的各个层级变得尤为重要。本文将详细介绍如何使用Spring Boot3.3与MyBatis-Plus联合实现这一功能。
57 2
|
28天前
|
缓存 Java 应用服务中间件
随着微服务架构的兴起,Spring Boot凭借其快速开发和易部署的特点,成为构建RESTful API的首选框架
【9月更文挑战第6天】随着微服务架构的兴起,Spring Boot凭借其快速开发和易部署的特点,成为构建RESTful API的首选框架。Nginx作为高性能的HTTP反向代理服务器,常用于前端负载均衡,提升应用的可用性和响应速度。本文详细介绍如何通过合理配置实现Spring Boot与Nginx的高效协同工作,包括负载均衡策略、静态资源缓存、数据压缩传输及Spring Boot内部优化(如线程池配置、缓存策略等)。通过这些方法,开发者可以显著提升系统的整体性能,打造高性能、高可用的Web应用。
58 2
|
2月前
|
Java 数据库连接 测试技术
SpringBoot 3.3.2 + ShardingSphere 5.5 + Mybatis-plus:轻松搞定数据加解密,支持字段级!
【8月更文挑战第30天】在数据驱动的时代,数据的安全性显得尤为重要。特别是在涉及用户隐私或敏感信息的应用中,如何确保数据在存储和传输过程中的安全性成为了开发者必须面对的问题。今天,我们将围绕SpringBoot 3.3.2、ShardingSphere 5.5以及Mybatis-plus的组合,探讨如何轻松实现数据的字段级加解密,为数据安全保驾护航。
89 1
|
28天前
|
Java 数据库连接 开发者
MyBatis-Plus整合SpringBoot及使用
MyBatis-Plus为MyBatis提供了强大的增强,使得在Spring Boot项目中的数据访问层开发变得更加快捷和简便。通过MyBatis-Plus提供的自动CRUD、灵活的查询构造器和简洁的配置,开发者
36 0
|
9天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的服装商城管理系统
基于Java+Springboot+Vue开发的服装商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的服装商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
31 2
基于Java+Springboot+Vue开发的服装商城管理系统
下一篇
无影云桌面