瑞吉外卖 - 编辑员工信息功能(9)

news2025/1/19 17:05:37

某马瑞吉外卖单体架构项目完整开发文档,基于 Spring Boot 2.7.11 + JDK 11。预计 5 月 20 日前更新完成,有需要的胖友记得一键三连,关注主页 “瑞吉外卖” 专栏获取最新文章。
相关资料:https://pan.baidu.com/s/1rO1Vytcp67mcw-PDe_7uIg?pwd=x548
提取码:x548

文章目录

    • 1.需求分析
    • 2.代码开发
      • 2.1 执行流程分析
      • 2.2 代码实现
    • 3.功能测试

1.需求分析

在员工管理列表页面点击【编辑】按钮,跳转到编辑页面,在编辑页面回显员工信息并进行修改,最后点击【保存】按钮完成编辑操作:


2.代码开发

2.1 执行流程分析

在开发代码之前需要梳理一下操作过程和对应的程序的执行流程:

  1. 点击【编辑】按钮时,页面跳转到 static/backend/page/member/add.html,并在 url 中携带员工 id 参数;
  2. 在 add.html 页面获取 url 中的员工 id 参数;
  3. 发送 ajax 请求,请求服务端,同时提交员工 id 参数;
  4. 服务端接收请求,根据员工 id 查询员工信息,将员工信息以 json 形式响应给页面;
  5. 页面接收服务端响应的 json 数据,通过 VUE 的数据绑定进行员工信息回显;
  6. 点击保存按钮,发送 ajax 请求,将页面中的员工信息以 json 方式提交给服务端;
  7. 服务端接收员工信息,并进行处理,完成后给页面响应;
  8. 页面接收到服务端响应信息后进行相应处理。

注意:add.html 页面为公共页面,新增员工和编辑员工都是在此页面操作。

那么当我们点击【编辑】按钮时用于数据回显发送的 URL 请求地址是什么呢?我们可以通过浏览器调试工具进行查看:

可见,点击【编辑】按钮时会跳转到 /backend/page/member/add.html 页面,并且携带 id 参数。我们可以从 static/backend/page/member/list.html 页面的如下代码处开始追踪:

上图可知点击编辑按钮后会触发一个 addMemberHandle(scope.row.id) 函数,参数就是员工 id,按住 ctrl 点击该函数进一步追踪:

可见,前端在跳转 /backend/page/member/add.html 静态页面的同时就将方法参数(也就是员工 id)拼接在了后面了。那么我们继续来看 add.html 页面又做了那些处理,对应位置如下:

进入上述 requestUrlParam('id') 方法如下:

简单来看的话,不难发现该方法其实就是对请求的 URL 进行处理,获取其中的 id 的值进行返回,最终 add.html 页面的 this.id 的值就会之对应员工的 id 值了:

顺着上图箭头逻辑,最后会执行一个 queryEmployeeById(this.id) 函数,我们继续追踪该方法:

可以看到,该函数的作用其实就是根据 id 值发送一个 Ajax 请求,并且是一个 GET 请求,请求 URL 为 /employee/${id}

得到第一个信息:服务端 Controller 需要处理 URL 为 /employee/${id} 的 GET 请求用于根据员工 id 查询员工信息用于回显。

接下来我们继续看点击【保存】按钮后的处理逻辑,由于前面说过编辑与新增公用一个 add.html 因此我们追踪到该页面的对应位置如下:

进入 submitForm('ruleForm', false) 函数:

该函数内部调用了一个 addEmployee(params) 函数,具体如下:

可以看到当我们点击【保存】按钮时,其实就是通过 ajax 发送了一个 POST 请求,请求 URL 为 /employee 同时携带的数据为 params 其中就是从编辑页面表单中获取的数据。并且我们已经在 EmployeeController 中写过了对应的方法用于新增员工,因此只需要编写通过 id 查询员工的处理方法即可。

2.2 代码实现

经过上面的分析我们明确了需要完成的任务:服务端 Controller 需要处理 URL 为 /employee/${id} 的 GET 请求用于根据员工 id 查询员工信息用于回显。

对应的代码如下:

@RestController
@RequestMapping("/employee")
public class EmployeeController {
    /**
     * 根据 id 查询员工信息
     * @param id 员工 id
     * @return 响应对象
     */
    @GetMapping("/{id}")
    public R<Employee> getById(@PathVariable Long id){
        Employee employee = employeeService.getById(id);
        // 如果查询到了员工信息,则返回成功结果
        if(employee != null){
            return R.success(employee);
        }
        // 如果没有查询到员工信息,则返回失败结果
        return R.error("未查询到对应员工信息");
    }
    
    // 省略其他方法
}

上面,我们通过占位符 {id} 表示在访问该接口时需要传入一个 id 参数,也就对应了请求的 /employee/${id}。并且在方法声名中,我们通过 @PathVariable 注解将 URL 中的占位符 {id} 对应的值赋给方法参数 id,即将访问接口时传入的 id 参数赋值给方法参数 id,使得方法能够获取该参数并进行后续操作。

3.功能测试

重启应用,点击【编辑】按钮,数据正常回显:

进行员工信息修改,如将 zhangsan 的手机号修改为 18611111111,然后点击【保存】按钮员工信息修改成功:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/532378.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

238:vue+openlayers绘制扩展,弓形、曲线、扇形、双箭头、进攻方向...

第238个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers中利用ol-plot插件进行绘制图形扩展,可以绘制弓形、弧形、标志旗、战斗进攻图形等等。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果; 注意如果OpenStreetMap无法加载,请加载其他…

win11 下部署Vicuna-7B,Vicuna-13B模型,

运行Vicuna-7B需要RAM>30GB或者14GB的显存 运行Vicuna-13B需要RAM>60GB或者28GB的显存 如果没有上面的硬件配置请绕行了&#xff0c;我笔记本有64G内存&#xff0c;两个都跑跑看&#xff0c;使用python3.9&#xff0c;当时转换13b时一直崩溃后来发现是没有设定虚拟内存&…

Linux指令 快捷键

热键 上一次我们说到了linux的基本指令&#xff0c;这次我们先说一下热键 TAB TAB键在linux中有什么作用呢&#xff1f;&#xff1f; 在Linux中&#xff0c;假设我们想要输入的指令忘记了&#xff0c;我们可以TAB两下&#xff0c;帮我们补全命令或者假如命令太多&#xff0…

C++基础STL-set容器

set容器介绍&#xff1a; set译为集合&#xff0c;集合是按照特定顺序存储唯一元素的容器。在集合中&#xff0c;元素的值也标识它(值本身就是键&#xff0c;类型为T)&#xff0c;并且每个值必须是唯一的。集合中元素的值在容器中一次就不能修改(元素总是const)&#xff0c;但可…

python学习环境准备

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言本专栏文章旨在记录《Python编程从入门到实践》一书的学习笔记。 一、编程环境二、使用步骤1.修改默认python版本2.终端退出python解释器3.编写.py文件4.运行.p…

【Linux是如何发送网络包的?】

网络模型 为了使得多种设备能通过网络相互通信&#xff0c;和为了解决各种不同设备在网络互联中的兼容性问题&#xff0c;国际标准化组织制定了开放式系统互联通信参考模型&#xff08;Open System Interconnection Reference Model&#xff09;&#xff0c;也就是 OSI 网络模…

【工作中掌握10个就够了!!!】Linux中的10个最常见命令+vim三个基本操作

欢迎观看我的博客&#xff0c;如有问题交流&#xff0c;欢迎评论区留言&#xff0c;一定尽快回复&#xff01;&#xff08;大家可以去看我的专栏&#xff0c;是所有文章的目录&#xff09;   文章字体风格&#xff1a; 红色文字表示&#xff1a;重难点★✔ 蓝色文字表示&#…

【macOS自带VNC远程】——Windows在外远程桌面控制macOS

文章目录 前言1.测试局域网内远程控制1.1 macOS打开屏幕共享1.2 测试局域网内VNC远程控制 2. 测试公网远程控制2.1 macOS安装配置cpolar内网穿透2.2 创建tcp隧道&#xff0c;指向5900端口 3. 测试公网远程控制4. 配置公网固定TCP地址4.1 保留固定TCP地址4.2 配置固定TCP端口地址…

Java | 一分钟掌握定时任务 | 4 - 多线程的Timer

作者&#xff1a;Mars酱 声明&#xff1a;本文章由Mars酱原创&#xff0c;部分内容来源于网络&#xff0c;如有疑问请联系本人。 转载&#xff1a;欢迎转载&#xff0c;转载前先请联系我&#xff01; 前言 JDK自带的Timer是无法做到多任务并发的&#xff0c;那么我们怎么处理多…

如何编写一份优质软件测试工程师简历的范文【建议收臧】

很多刚转行软件测试的小伙伴是不是不知道怎么写好一份优质的软件测试工程师的简历。今天呢&#xff0c;就给大家分享一下一个优质软件测试工程师简历的范文。记得收藏起来哦。 下面的案例&#xff1a;2-3年的软件测试工程的简历 姓 名&#xff1a;XXX 学历&#xff1a…

Zabbix“专家坐诊”第191期问答汇总

问题一 Q&#xff1a;snmp监控服务器风扇、温度等硬件信息需要要mib库吗&#xff1f; A&#xff1a;官网有相关的mib库可查&#xff0c;一般同大型号通用&#xff0c;直接去官方下就行。 问题二 Q&#xff1a;zabbix用的postgresqltimescaledb备份这个数据库的时候不想包含历…

【Linux】-Linux的权限

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树 ❤️‍&#x1fa79;作者宣言&#xff1a;认真写好每一篇博客 &#x1f4a8;作者gitee:gitee &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 如 果 你 喜 欢 作 者 的 文 章 &#xff0c;就 给 作 者 点 …

【C++】入门必备小知识

C入门 1. 域2. 命名空间2.1命名空间的定义2.2 命名空间的使用 3. C输入和输出4. 缺省参数5. 函数重载6. 引用7. auto8. 范围for9.nullptr空指针10.内联函数 1. 域 域就是作用域&#xff0c;同一个域不可以用同名的变量&#xff0c;不同域可以用同名变量&#xff0c;遵循局部优…

案例11:Java超市管理系统设计与实现开题报告

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

5年时间里,自动化测试于我带来的意义,希望你也能早点知道

摘要&#xff1a;在我有限的软件测试经历里&#xff0c;曾有一段专职的自动化测试经历。 接触自动化 那时第一次上手自动化测试&#xff0c;团队里用的是Python&#xff0c;接口自动化测试的框架是requestsExcelJenkins&#xff0c;APP自动化测试的框架是Appium。 整个公司当…

寻找差值结构的最优顺序

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点&#xff0c;AB训练集各由6张二值化的图片组成&#xff0c;让A中有6个1 差值结构的每行只能是二进制的3&#xff0c;6&#xff0c;5..3列每列1的数量为1&#xff0c;2&#xff0c;3.B中全是0&#xff0c;排列组合…

“记录新时代 奋进新征程”省市主流媒体共赴省交通集团在建项目采风

近日&#xff0c;浙江省省市13家主流媒体集中走进杭绍甬高速杭绍段绍兴侧路面施工现场、杭金衢高速联络线PPP项目中村大桥及杨家山隧道等施工现场&#xff0c;近距离感受在建工程的标准化施工、数字化赋能以及产业工人队伍打造。 标准化、数字化齐头并进&#xff0c;保障路面施…

脂溶性荧光染料Cy7标记羧酸Cy7-COOH/Carboxylic acids星戈瑞

CY7-COOH是一种含有羧基的化合物&#xff0c;它的分子式为C37H45ClN2O2&#xff0c;分子量519.12。其化学结构中包含有一个吲哚菁骨架&#xff0c;以及一个羧基&#xff08;COOH&#xff09;官能团。它的分子式为C37H45ClN2O2&#xff0c;分子量519.12。CY7-COOH是一种近红外荧…

热烈祝贺百华鞋业通过山东省专精特新企业认定!

近日&#xff0c;山东省工业和信息化厅公布了山东省2023年度专精特新中小企业名单&#xff0c;百华鞋业荣誉上榜&#xff01; 专精特新中小企业是指具有“专业化、精细化、特色化、新颖化”特征的中小企业&#xff0c;多专注于产业链上某个环节&#xff0c;主营业务聚焦&#…

Three.js--》实现3d小岛模型搭建

目录 项目搭建 初始化three.js基础代码 设置环境背景 设置水面样式 添加天空小岛 今天简单实现一个three.js的小Demo&#xff0c;加强自己对three知识的掌握与学习&#xff0c;只有在项目中才能灵活将所学知识运用起来&#xff0c;话不多说直接开始。 项目搭建 本案例还…