项目搭建+修改
一 : 在列表成功回调函数,追加数据中,添加修改的按钮
for (let x of res) {//追加数据$("#table").append(`<tr><td><input type="checkbox" class="ck" value="\${x.uid}"></td><td>\${x.uid}</td><td>\${x.userName}</td><td>\${x.state==0?"启用":"禁用"}</td><td>\${x.time}</td><td><input type="button" value="修改" onclick="toUpd(\${x.uid})" ><input type="button" value="删除" onclick="UserDel(\${x.uid})" ><input type="button" value="修改角色" onclick="setRole(\${x.uid})"></td></tr>`)}},
一 ①: 修改使用id路径传参
/*** 回显 先回显再去修改的页面** @param goodsId*/function goodsUpd(goodsId) {/*跳转路径去修改页面*/location.href="upd.jsp?goodsId="+goodsId;}
二 : upd.jsp页面
1.创建需要修改的文本框
<%--创建回显的文本框 不要名字 这个月都没有名字--%>
<%--用户ID : <input type="text" id="uid"><br>--%>
用户姓名 : <input type="text" id="userName"><br>
用户状态 : <input type="text" id="state"><br>
2.修改按钮
<%--修改按钮--%>
<input type="button" value="修改" id="upd">
3.修改路径传参需要接参
<%--获取路径传参的值--%>
<input type="hidden" value="${param.goodsId}" id="goodsId">
4.head中写预加载数据使用文档就绪函数
3.① :文档就绪函数
$(function{
1.调用回显的函数
})
//文档就绪函数 回显的$(function () {//调用回显的函数findById()})
3.② : 回显的函数方法
function findById(){
1.取值 (取的是需要修改的字段,修改/回显/删除 都是根据id进行的)
2.非空校验
3.组装对象
回显组装对象获取的也是需要修改的字段
4.ajax
}
/*回显函数*/function findById() {/*取值*/let goodsId=$("#goodsId").val()/*非空校验*/if (!goodsId){alert("请先输入")//用来结束使用的return;}/*组装对象*/let obj={goodsId:goodsId}/*ajax*/$.ajax({url:"/goods/findById", //请求路径type:"post",//请求方法data:{reqInfos:JSON.stringify(obj)}, //路径转换dataType:"json", //解析success(res){//打印console.log(res)//获取值$("#goodsId").val(res.goodsId)$("#goodsCode").val(res.goodsCode)$("#goodsName").val(res.goodsName)$("#price").val(res.price)$("#num").val(res.num)$("#time").val(res.time)$("#typeId").val(res.typeId)$("#supplierId").val(res.supplierId)$("#imgUrl").attr("src","/file/showImg?imgUrl="+res.imgUrl)},error(){alert("不要进来了,出错了")}})}
5. 在body下面脚本里
5.①给修改按按钮绑定点击事件
1.取值
2.组装对象
3.ajax ( 成功回调函数中修改完跳转列表页面 )
/*** 给修改绑定一个点击事件*/$("#goodsUpd").click(function () {//要传传路径let imgUrl =""//获取第一个图片let file = $("#file")[0].files[0];//new FormData 对象let formData = new FormData;//获将图片添加到对象formData.append("file",file)$.ajax({url: "/file/upload",type: "post",data: formData,async: false,cache: false,contentType: false,processData: false,dataType: "json",success(res) {imgUrl=res},error() {alert("图片加载失败")}})//取值let goodsId = $("#goodsId").val()let goodsCode = $("#goodsCode").val()let goodsName = $("#goodsName").val()let price = $("#price").val()let num = $("#num").val()let time = $("#time").val()let typeId = $("#typeId").val()let supplierId = $("#supplierId").val()//非空校验if (!goodsId || !goodsCode || !goodsName || !price || !num || !time || !typeId || !supplierId){alert("请先输入")return;}//组装对象let obj={goodsId,goodsCode,goodsName,price,num,time,typeId,supplierId,imgUrl}/*ajax*/$.ajax({url:"/goods/goodsUpd", //请求路径type:"post",//请求方法data:{reqInfos:JSON.stringify(obj)}, //路径转换dataType:"json", //解析success(res){//打印console.log(res)if (res===200){/*** 跳转列表页面* @type {string}*/location.href="list.jsp"}},error(){alert("不要进来了,出错了")}})})
三 : Controller层
1.接参
2.将json对象转换成ava对象
3.将转换后的对象传给service
4.处理返回值响应给用户(添加/修改/删除 返200)
/*** 修改*/protected void goodsUpd(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//接参String reqInfos = req.getParameter("reqInfos");//将json对象转换成Java对象GoodsVo goodsVo = JSONObject.parseObject(reqInfos, GoodsVo.class);//将转换后对象传给serviceservice.goodsUpd(goodsVo);//处理返回结果响应给用户resp.getWriter().println(JSONObject.toJSONString(200));}
四 : service层
1.调用dao层方法
2.处理返回值
/*** 回显* @param goodsId* @return*/@Overridepublic GoodsVo findById(Integer goodsId) {//调用dao层方法//处理返回值return goodsDao.findById(goodsId);}/*** 修改* @param goodsVo*/@Overridepublic void goodsUpd(GoodsVo goodsVo) {goodsDao.goodsUpd(goodsVo);}
五 : dao层
1.定义sql语句
2.执行sql语句
/*** 回显* @param goodsId* @return*/@Overridepublic GoodsVo findById(Integer goodsId) {/*定义sql语句*/String sql="SELECT *FROM t_goods WHERE goods_id=? ";/*执行sql语句*/return baseQueryOne(GoodsVo.class,sql,goodsId);}/*** 修改* @param goodsVo*/@Overridepublic void goodsUpd(GoodsVo goodsVo) {/*定义sql*/String sql="UPDATE t_goods SET goods_code=?,goods_name=?,price=?,num=?,time=?,type_id=?,supplier_id=?,img_url=? WHERE goods_id=?";/*执行sql语句*/baseUpdate(sql,goodsVo.getGoodsCode(),goodsVo.getGoodsName(),goodsVo.getPrice(),goodsVo.getNum(),goodsVo.getTime(),goodsVo.getTypeId(), goodsVo.getSupplierId(),goodsVo.getImgUrl(),goodsVo.getGoodsId());}
相关文章:
项目搭建+修改
一 : 在列表成功回调函数,追加数据中,添加修改的按钮 for (let x of res) {//追加数据$("#table").append(<tr><td><input type"checkbox" class"ck" value"\${x.uid}"></td><td>\${x.uid}</td>…...

每日算法一练:剑指offer——树篇(4)
1.计算二叉树的深度 某公司架构以二叉树形式记录,请返回该公司的层级数。 示例 1: 输入:root [1, 2, 2, 3, null, null, 5, 4, null, null, 4] 输出: 4 解释: 上面示例中的二叉树的最大深度是 4,沿着路径 1 -> 2 -> 3 -&…...

Nginx静态资源配置
基本配置原则 明确资源目录:为不同类型的静态资源指定不同的路径,这样可以避免路径冲突,并且便于管理。正确设置文件权限:确保 Nginx 具有读取静态资源的权限。缓存优化:为静态资源设置缓存头(如 expires&…...

困扰解决:mfc140u.dll丢失的解决方法,多种有效解决方法全解析
当电脑提示“mfc140u.dll丢失”时,这可能会导致某些程序无法正常运行,给用户带来不便。不过,有多种方法可以尝试解决这个问题。这篇文章将以“mfc140u.dll丢失的解决方法”为主题,教大家有效解决mfc140u.dll丢失。 判断是否是“mf…...
D3.js 初探
文章目录 D3.js 简单介绍选择集与方法数据绑定方法选择集添加DOM元素以及删除元素理解update enter 以及 exit关于比例尺layout 布局force layout 坐标轴元素添加动态效果demo1: 绘制简单柱状图 #D3.js 初探 最近在做一个Data Visualization 的项目,由于对最终呈现的…...
linux常用指令 | 适合初学者
linux常用指令 1.ls: 列出当前,目录中的文件和子目录 ls 2.pwd: 显示当前工作目录的路径 pwd3.cd切换工作目录 cd /path/to/director4.mkdir:创建新目录 mkdir directory_name5.rmdir:删除空目录 rmdir directory_name6.rm: 删除文件或目录 rm file_name r…...

用 NotePad++ 运行 Java 程序
安装包 网盘链接 下载得到的安装包: 安装步骤 双击安装包开始安装. 安装完成: 配置编码 用 NotePad 写 Java 程序时, 需要设置编码. 在 设置, 首选项, 新建 中进行设置, 可以对每一个新建的文件起作用. 之前写的文件不起作用. 在文件名处右键, 可以快速打开 CMD 窗口, 且路…...

在 Linux 环境下搭建 OpenLab Web 网站并实现 HTTPS 和访问控制
实验要求 综合练习:请给openlab搭建web网站 网站需求: 1.基于域名[www.openlab.com](http://www.openlab.com)可以访问网站内容为 welcome to openlab!!! 2.给该公司创建三个子界面分别显示学生信息,教学资料和缴费网站,…...

微信小程序wx.showShareMenu配置全局分享功能
在app.js文件中配置如下即可: onLaunch() {//开启分享功能this.overShare()},/*** 开启朋友圈分享功能* 监听路由切换/自动执行*/overShare() {wx.onAppRoute((res) > {// console.log(route, res)let pages getCurrentPages()let view pages[pages.length - …...
机器学习面试八股总结
下面是本人在面试中整理的资料和文字,主要针对机器学习面试八股做浅显的总结,大部分来源于ChatGPT,中间有借鉴一些博主的优质文章,已经在各文中指出原文。有任何问题,欢迎随时不吝指正。 文章系列图像使用动漫 《星游…...

南京邮电大学《2024年812自动控制原理真题》 (完整版)
本文内容,全部选自自动化考研联盟的:《南京邮电大学812自控考研资料》的真题篇。后续会持续更新更多学校,更多年份的真题,记得关注哦~ 目录 2024年真题 Part1:2024年完整版真题 2024年真题...

大数据新视界 -- Hive 数据湖集成与数据治理(下)(26 / 30)
💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...
Android EventBus最全面试题及参考答案
目录 什么是 EventBus? 请解释 EventBus 是什么,以及它的工作原理。 简述 EventBus 的工作原理。 EventBus 的主要组成部分有哪些? EventBus 是如何实现发布订阅模式的? EventBus 与观察者模式有什么区别? Even…...
C++ 游戏开发:开启游戏世界的编程之旅(1)
在游戏开发领域,C 一直占据着极为重要的地位。它以高效的性能、对底层硬件的良好控制能力以及丰富的库支持,成为众多大型游戏开发项目的首选编程语言。今天,就让我们一同开启 C 游戏开发的探索之旅。 一、C 游戏开发基础 (一&am…...
SpringBoot mq快速上手
1.依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency> 2.示例代码 基础信息配置 package com.example.demo.config;import org.springframework.amqp.co…...

图像处理网络中的模型水印
论文信息:Jie Zhang、Han Fang、Weiming Zhang、Wenbo Zhou、Hao Cui、Hao Cui、Nenghai Yu:Model Watermarking for Image Processing Networks 本文首次提出了图像处理网络中深度水印问题,将知识产权问题引入图像处理模型 提出了第一个深…...

Halcon 瑕疵检测原理及应用
摘要: 本文详细阐述了 Halcon 在瑕疵检测领域的原理、相关技术以及广泛的应用场景。首先介绍了 Halcon 软件的基本概况及其在机器视觉领域的重要地位,接着深入剖析了瑕疵检测所涉及的图像采集、预处理、特征提取与分析以及分类与判定等核心原理ÿ…...

JAVA 架构师面试 100套含答案:JVM+spring+ 分布式 + 并发编程》...
今年的行情,让招聘面试变得雪上加霜。已经有不少大厂,如腾讯、字节跳动的招聘名额明显减少,面试门槛却一再拔高,如果不用心准备,很可能就被面试官怼得哑口无言,甚至失去了难得的机会。 现如今,…...
多模态学习详解
多模态学习详解 引言 多模态(Multimodal)学习是机器学习和人工智能领域的一个重要分支,它涉及从多个不同类型的输入数据中提取信息,并将这些信息融合以改善模型的性能。多模态学习能够处理的数据类型广泛,包括但不限…...
C#应用开发:基于C# WPF界面实现本机网络通讯状态(下载速度)的显示
目录 概述 具体实现 第一步:获取网络接口信息 代码解释: 第二步:创建 WPF 界面 第三步:绑定数据 注意事项 概述 在 WPF 中实现一个界面来显示本机网络接口的状态,通常需要以下几个步骤: 获取网络接口…...

idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...

群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...
华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)
题目描述 给定一个整型数组,请从该数组中选择3个元素 组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述 行用半角逗号分割的字符串记录的整型数组,0<数组长度<= 100,0<整数的取值范围<= 10000。 输出描述 由3个元素组成…...
全面解析数据库:从基础概念到前沿应用
在数字化时代,数据已成为企业和社会发展的核心资产,而数据库作为存储、管理和处理数据的关键工具,在各个领域发挥着举足轻重的作用。从电商平台的商品信息管理,到社交网络的用户数据存储,再到金融行业的交易记录处理&a…...

Visual Studio Code 扩展
Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后,命令 changeCase.commands 可预览转换效果 EmmyLua…...
【Kafka】Kafka从入门到实战:构建高吞吐量分布式消息系统
Kafka从入门到实战:构建高吞吐量分布式消息系统 一、Kafka概述 Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发,后成为Apache顶级项目。它被设计用于高吞吐量、低延迟的消息处理,能够处理来自多个生产者的海量数据,并将这些数据实时传递给消费者。 Kafka核心特…...