删除sys_file表中的文件信息后同步操作表单中对应的文件字段信息

需求:由于系统的表单文件上传/删除操作与表单的保存操作不同时进行,所以需要调整
细节:(某个表:A表)表单的文件字段只是保存了上传文件的id,名称,真正的文件保存是保存在一个系统的文件表sys_file中,目前是点击附件删除,发送删除请求,删除了sys_file中对应id的数据,但是A表中的文件字段保存的信息是没有更新的,即:真正的附件已经删除,但是A表还显示有之前保留的附件信息
现要求:删除附件后,A表的文件字段也相应调整

思路1(已实现):

  1. 由于要操作的表不同,所以需要一个标识(tableType),后台根据标识操作指定的表
  2. 需要被操作数据的主键ID(tableId)
  3. 操作的字段名称,如果同一个表单,不同字段的话,需要区分字段(tableField)

在这里插入图片描述

正常情况下:JS获取标签属性然后调用删除接口的时候,传参数即可

$(function () {$('.attach').each(function () {$(this).attach();});
});

在这里插入图片描述
在这里插入图片描述

把标签上的三个属性添加到删除按钮的标签上,(删除按钮()是JS添加的,有附件才有删除按钮)这里的obj就是initAttach()传进来的input,这里获取了attach-del并设置了三个属性,属性的值,就是JSP页面中input标签里面的三个属性的值
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

后台处理,然后操作即可

⚠️过程中出现的特殊情况:
在这里插入图片描述

发现,删除了之后,真实附件删除了,但是表单中附件信息字段没有更新,debug到接口获取参数的时候,发现三个参数都是undefind,然后浏览器页面查看删除按钮,发现,没有拼接到那三个参数,就奇怪了,改的地方都一致(因为这个页面的附件回显不是我完成的,所以,之前默认是,这个回显应该跟JS里面的方法是一致的)
在这里插入图片描述

后续发现,这个obj打印出来就没有我添加的那三个属性,所以,查看发现,这里传入的obj跟JS文件里面那个函数传入的obj是不一致的,所以获取不到添加的属性,所以直接根据name获取标签,获取指定属性值然后传入进行设置
在这里插入图片描述

在这里插入图片描述

然后设置attach-del的标签的属性值就用传入的三个参数,即可

弊端:
这种方法会导致,接口里面要根据不同表单操作不同的dao来操作数据库不同的表,每新增一个,都需要修改接口,代码冗余

由于上述方法存在的问题,想着能不能用反射,页面添加上全类名,字段名,主键名,然后反射获取类对象,设置值之后,调用方法操作数据库,这样的话,以后如果另一个表新增一个附件字段,或者同一个表再多一个附件字段,只需要改页面的标签,而不用动到接口

思路2(未实现):传参数方式与上面的方法一致,接口使用反射,根据参数获取不同的类,获取表单对应的表的对象,修改值之后,调用修改方法,操作数据库

/*** 业务表单附件字段删除已经被删除的附件的冗余信息*/
public void delRedundancyField(String tableId, String tableProperty, String tableService) {try {// 获取业务service类Class serviceClass = Class.forName(tableService);// 一般dao继承于baseDao,baseDao再继承于GenericDaoClass baseClass = serviceClass.getSuperclass();Class GenericClass = baseClass.getSuperclass();// 小驼峰拼接,方法名首字母大写Method getMethod = GenericClass.getMethod("getById");logger.info("蟹老板测试:" + getMethod);
//            serviceClass.getMethod()}catch (Exception e) {e.printStackTrace();}}

这里当初获取不到getById()方法之后,就停止了这个思路,后续想想。
应该是GenericClass里面有getById()的多个重载方法,没有再根据参数列表判断,获取不到

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Retrieval-Augmented Generation for Large Language Models: A Survey

PS: 梳理该 Survey 的整体框架,后续补充相关参考文献的解析整理。本文的会从两个角度来分析总结,因此对于同一种技术可能在不同章节下都会有提及。第一个角度是从整体框架的迭代来看(对应RAG框架章节),第二个是从RAG中…

转专业(UPC练习)

题目描述 根据教育部的规定,大学生进校后符合条件的可申请转专业。在校本科生在完成大学一年级课程,进入二年级之前,符合以下条件之一者,可以申请转专业:(1)在某一学科方面确有特长的学生&#…

IPv6路由协议---IPv6动态路由(OSPFv3-5)

OSPFv3各链路状态通告类型 4.Inter-Area-Router-LSA区域间路由器(4类LSA) 边界路由器(ABR)产生的第4类LSA,在Area 范围内泛洪,描述了到本AS内其他区域的ASBR路由器信息; 每各Inter-Area-Router-LSA包含一个ASBR路由器信息,LSA中的能力选项(Options)与所描述的ASBR …

【模块系列】STM32TCS3472

前言 手上正好有TCS3472模块,也正好想在加深一下自己对I2C协议的理解和应用,所以就写了这个代码库出来。参考的资料主要来源于TCS3472的数据手册,和arduino中MH_TCS3472库的宏定义,和函数名称,我就没有重新命名&#x…

【System Verilog and UVM实力进阶2】SVA语法

毛主席说过:没有调查就没有发言权。 《SVA介绍——学习SVA语法》系列第二讲 本文还是延续上一篇的风格,语言内容尽可能简单明了,有问题大家相互讨论,共同进步。需要电子书的朋友可以给我发邮件。tommi.weiqq.com 1.16 "ended…

Spring MVC 参数接收

参数接收 Springmvc中,接收页面提交的数据是通过方法形参来接收: 处理器适配器调用springmvc使用反射将前端提交的参数传递给controller方法的形参 springmvc接收的参数都是String类型,所以spirngmvc提供了很多converter(转换器…

光鉴科技的反卷思维,让科技不再难做

文 | 智能相对论 作者 | 陈壹 中国企业的全球竞争力,正从“拼人力、拼产能”转为“拼技术、拼创新”的新阶段。据世界知识产权组织发布的《世界知识产权指标报告》显示,2022年中国专利申请量约160万件,排名世界第一。而在最近发布的全球百强…

MySQL:索引失效场景总结

1 执行计划查索引 通过执行计划命令可以查看查询语句使用了什么索引。 EXPLAIN SELECT * FROM ods_finebi_area WHERE areaName = 福建 执行查询计划后,key列的值就是被使用的索引的名称,若key列没有值表示查询未使用索引。 2 在什么列上创建索引 (1)列经常被用于where…

网络安全B模块(笔记详解)- nmap扫描渗透测试

nmap扫描渗透测试 1.通过BT5对服务器场景Linux进行TCP同步扫描 (使用工具Nmap,使用参数n,使用必须要使用的参数),并将该操作使用命令中必须要使用的参数作为Flag提交; Flag:sS 2.通过BT5对服务器场景Linux进行TCP同步扫描 (使用工具Nmap,使用参数n,使用必须要使用的参数…

三大热门婴儿洗衣机测评报告:综合对比希亦/觉飞/鲸立

随着家中新生命的降临,一大批婴儿专用的物品也陆续进入到家中,虽然有很多东西确实能在育儿之路上提供很多帮助,不过也有一些东西“很坑”。婴儿洗衣机这一产品是专为有婴幼儿的家庭或者有特殊需求的人士所研发的,它的容量以及体积…

VMware Visio OmniGraffle模板和图标

VMware Visio OmniGraffle模板和图标 包含可用于Visio、omnigraffle的图标和SVG矢量图。 简介 这组资源适用于 IT 管理员、系统架构师、网络工程师和其他需要可视化 VMware 基础架构的专业人士创建精确的 VMware 网络和数据中心部署图,通过使用这些模板和图标&am…

GB28181/GB35114平台LiveGBS何如添加白名单,使指定海康、大华、华为等GB28181摄像头或录像机设备可以免密接入

1、什么是GB/T28181级联 协议定义中的解释如下: 级联 cascadednetworking 两个信令安全路由网关之间按照上下级关系连接,上级中心信令控制服务器通过信令安全路由网 关可调用下级中心信令控制服务器所管辖的监控资源,下级中心信令控制服务器通过信令安全路由网 关向…