首页 > 其他分享 >SpringBoot学习4(02整合项目+前端)

SpringBoot学习4(02整合项目+前端)

时间:2023-09-27 20:47:37浏览次数:37  
标签:02 SpringBoot res 前端 getAll message data formData row

1.添加web界面

在resources包下的static包中导入需要用的包,编写html。

 1.1测试一下

 页面控制台中成功获取数据

 1.2页面显示:查询全部信息

 

1.3添加功能实现

 新建按钮的点击事件为   @click="handleCreate()"

点击新建后弹出添加页面,该页面的确定提交按钮点击事件为  @click="handleAdd()"

数据模型名字为formData

对应的一些代码

//钩子函数,VUE对象初始化完成后自动执行
        created() {
            //调用查询全部数据的操作
            this.getAll();
        },

        methods: {
            //列表
            getAll() {
                //测试
                // console.log("run...")
                //发送异步请求get请求发送到/books里面,然后then会返回的数据进行编程
                axios.get("/books").then((res)=>{
                   //调试
                   //  console.log(res.data);
                   this.dataList = res.data.data;

                });

            },

            //弹出添加窗口
            handleCreate() {

                //让添加窗口显示出来
                this.dialogFormVisible = true;
                //在显示窗口之前,先清空一下表单
                this.resetForm();
            },

            //重置表单
            resetForm() {
                //清空数据
                this.formData = {};
            },

            //添加
            handleAdd () {
                //弹出的新增窗口中的提交按钮
                //新增对应后端我们写的post请求
                // 发请求的时候要把表单数据提交过去:表单名称:formData
                axios.post("/books",this.formData).then((res)=>{
                    //p判断操作是否成功
                    if(res.data.flag){
                        //关闭弹窗
                        this.dialogFormVisible = false;
                        //给用户新建成功的信息
                        this.$message.success("添加成功");
                    }else {
                        this.$message.error("添加失败");
                    }
                    // //刷新数据
                    // this.getAll();
                }).finally(()=>{
                    //不管是否成功都需要刷新一下数据
                    this.getAll();
                });

            },

            //取消
            cancel(){
                //关闭新建的弹窗
                this.dialogFormVisible=false;
                //给用户提示信息success是绿色小弹窗提示,error是红色小弹窗提示,info是灰色小弹窗显示
                this.$message.info("当前操作取消")
            },

 

 1.4删除功能实现

删除按钮的点击事件:@click="handleDelete(scope.row)"

 // 删除
            handleDelete(row) {
                //通过控制台查看row数据是什么东西
                // console.log(row);


                //2.带有删除提醒的代码
                this.$confirm("此操作永久删除当前信息,是否继续?","提示",{type: "info"}).then(()=>{
                   //测试
                    // console.log("success");

                    axios.delete("/books/"+row.id).then((res)=>{

                        if(res.data.flag){
                            //给用户删除成功的信息
                            this.$message.success("删除成功");
                        }else {
                            this.$message.error("删除失败");
                        }

                    }).finally(()=>{

                        this.getAll();

                    });

                }).catch(()=>{
                    //测试
                    // console.log("fail");

                    this.$message.info("取消删除操作");

                });


            },

 

 1.5修改功能

修改按钮的点击事件 @click="handleUpdate(scope.row)"

编辑窗口为dialogFormVisible4Edit

数据模型是formData

要在cancel里面也加上 this.dialogFormVisible4Edit = false;才能实现点击取消,关闭弹窗

//弹出编辑窗口
            handleUpdate(row) {

                axios.get("/books/"+row.id).then((res)=>{

                    //判断数据是否存在
                    if(res.data.flag && res.data.data != null){
                        this.dialogFormVisible4Edit = true;
                        this.formData = res.data.data;
                    }else {
                        this.$message.error("数据同步失败,自动刷新");
                    }

                }).finally(()=>{
                    this.getAll();
                });

            },

            //修改
            handleEdit() {

                axios.put("/books", this.formData).then((res)=>{

                    if(res.data.flag){
                        //1.关闭弹层
                        this.dialogFormVisible4Edit = false;
                        this.$message.success("修改成功");
                    }else {
                        this.$message.error("修改失败");
                    }
                }).finally(()=>{
                    this.getAll();
                });

            },

 

 1.6异常统一处理器

基础篇-46-异常消息处理_哔哩哔哩_bilibili

新建一个表现层的工具类:ProjectExceptionAdvice.java

在controller中修改返回的信息,添加msg

在R中新增一个属性msg

 

 

 1.7添加分页功能

基础篇-47-分页_哔哩哔哩_bilibili

 

1.8条件查询

基础篇-49-条件查询_哔哩哔哩_bilibili

 

标签:02,SpringBoot,res,前端,getAll,message,data,formData,row
From: https://www.cnblogs.com/hmy22466/p/17734272.html

相关文章

  • JOISC 2020
    ビルの飾り付け4/Building4令\(f_{i,0/1,j}\)表示到第\(i\)位,第\(i\)位选的是\(A_i/B_i\),\(1\simi\)选了\(j\)个\(A_i\)是否合法。可以发现,对于一个\(f_{i,0/1,j}\),合法的\(j\)一定是一段区间,那么就完了。#include<iostream>#include<cstdio>#include<c......
  • 202309272022-《idea编辑器,maven解析依赖慢,解决办法》
    法一:1.Preference2.Search"maven"keyword,,3.选中“运行程序(runner)”,4.在右侧“vm选项”一栏,输入:  -DarchetypeCatalog=internal 至于为什么,我也说不出一二。 法二:https://blog.csdn.net/weixin_43912822/article/details/114173413......
  • 2023年台州市网络安全大赛Writeup
    WebeasyLDContent-Type:image/png绕过上传.so文件可以看到前面的利用都是基于其相关命令加载了strncmp函数,通过构造对strncmp函数的劫持来实现的,如果有些命令不加载strncmp函数的话其就无法正常运行起来,这个时候有一种思路就是所有的命令进行全量劫持从而达到全局劫持的效果,相......
  • 2023-2024-1 20231401 《计算机基础与程序设计》第一周学习总结
    作业信息该作业属于2023-2024-1计算机基础与程序设计https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP作业要求在https://www.cnblogs.com/rocedu/p/9577842.html#WEEK01作业目标:加入云班课,参考学习本周学习资源注册博客园账号,加入2022-2023-1-计算机基础与程序设计......
  • 2023-2024-1 20231325《计算机基础与程序设计》 第1周学习总结
    作业信息这个作业属于哪个课程2023-2024-1《计算机基础与程序设计》这个作业的要求在哪里2023-2024-1计算机基础与程序设计第一周作业这个作业的目标快速浏览教材《计算机科学概论》,提出自己不懂或最想解决的问题并在期末回答作业正文本博客链接https://i.cnb......
  • 后端传递Timestamp类型时间前端自定义接收格式
    Vue项目中处理后端返回日期字符串在这个Vue项目中,后端接口RentalQueryAllServlet返回的租车记录数据中,有一个rentalTime字段,其值是日期字符串,如:"Sep27,20239:23:40AM"。1.获取数据组件中使用axios调用接口获取数据: js methods:{fetchData(){axio......
  • 2023.9.27 LGJ Round
    A已知一个字符串\(n\le1e3\)中的若干信息,:\((x,y,z)\)表示\(x\)后缀和\(y\)后缀的\(\text{LCP}=z\).求满足条件的字典序最小的字符串。已知\(a_{x+i}=a_{y+i}(i<z)\),考虑维护并查集,一定相同的在一个集合。然后要处理的是\(a_{x+z}\neqa_{y+z}\)。从前往后填即可。......
  • 梦段代码阅读笔记02
    1、对该项目的人的认识不得不承认的一点是,这个项目的基础特别棒,在万众瞩目下开启开发的旅程,历时七年,在完工之际,已经没有人为之喝彩;项目团队人人都很优秀,在我眼里,他们不仅仅是久远时光里的一个出名的项目团队,他们还是独一无二的编程“疯子”,他们热爱编程、享受编程,不屑于将自己......
  • Keyence Programming Contest 2020
    A-Painting每次取\(H,W\)中较大者涂就是了,输出\(\lceil\frac{n}{\max(H,W)}\rceil\)。代码:#include<iostream>#include<cstdio>usingnamespacestd;inth,w,n;intmain(){ scanf("%d%d%d",&h,&w,&n); if(h<w)swap(h,w); ......
  • NOMURA Programming Competition 2020
    A-StudyScheduling先算出总时间,然后在减去\(K\)就好了。代码:#include<iostream>#include<cstdio>usingnamespacestd;inth1,m1,h2,m2,k;intmain(){ scanf("%d%d%d%d%d",&h1,&m1,&h2,&m2,&k); intansh=h2-h1,ansm=m2-m1; if......