项目搭建+修改
一 : 在列表成功回调函数,追加数据中,添加修改的按钮
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 中实现一个界面来显示本机网络接口的状态,通常需要以下几个步骤: 获取网络接口…...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...
深入理解Optional:处理空指针异常
1. 使用Optional处理可能为空的集合 在Java开发中,集合判空是一个常见但容易出错的场景。传统方式虽然可行,但存在一些潜在问题: // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...
一些实用的chrome扩展0x01
简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序,无论是测试应用程序、搜寻漏洞还是收集情报,它们都能提升工作流程。 FoxyProxy 代理管理工具,此扩展简化了使用代理(如 Burp…...
Springboot多数据源配置实践
Springboot多数据源配置实践 基本配置文件数据库配置Mapper包Model包Service包中业务代码Mapper XML文件在某些复杂的业务场景中,我们可能需要使用多个数据库来存储和管理不同类型的数据,而不是仅仅依赖于单一数据库。本技术文档将详细介绍如何在 Spring Boot 项目中进行多数…...
