关于前后端传值问题
在做项目的时候发现了一个很奇葩的问题(基于maybatis-plus插件和layui框架),在门诊信息修改的时候,对应数据的id自动置0(置空)问题,记录还是要视图文字信息结合才更清晰,上图:
这里只记录相关联方法(注意图中特别的地方)
html
事件定义:
调用方法,并加上标记:
Controller:
返回路径,并标记:
返回修改页面,展示取值方法:
因为没有用到id,所以这里没有穿id的值:
这里是将数据封装,传给后端,并调用响应修改方法:
展示修改方法,并加上标记:
serviceimpl:
运行结果:(人的一生都可能大起大落,何况这短短BUG消失的一分钟呢)开始出现问题的时候,除了查询语句id值能拿到,标记的输出语句对应的id全为0,但是现在。。。它突然就这么好了!!!
这里就有尴尬了,在出现这个问题到解决完成的一刹那就开始记录,到现在居然恢复正常了,抱拳了。但还是完整记录下来吧:
解决办法
(个人观点)首先在这里添加一个name为id的输入框,接收回显的id用:
由于是id没拿到,(虽然id不用输出)这里用这种方法直接拿id:
结果就成功了
特意将修改的地方恢复了原样,但是修改却恢复正常了。。。
没恢复正常的时候:由于是没拿到id,saveOrUpdate中方法执行定义的是,根据id查询数据或看对象是否为空来判断是执行save方法还是update方法。
所以就执行了save方法:
又是新的一天,因为昨天这篇记录中途出现了问题,所以不死心的我今天又特地来验证一把,果然还是有漏洞:
错误信息它来了:
注意看上面控制台打印id的值。
也不难发现,id值是在 Controller -> html ->ServiceImpl时消失的。也就是说,值传给前端,前端将数据修改后却没有将数据的id传回来。
好了,完满结束本次BUG记录日志。解决办法按照上述就行(也可能有别的办法,但是我的知识层面还没达到,这里就不搜索整理了)THANKS。