ssm框架中如何在前端jsp页面上点击一个按钮同时实现增和改的两种操作

问题描述:

小白最近在做的一个项目中里面有这样一个需求:对一个调查问卷页面进行编辑,包括调查问卷题目的修改、删除、增加。jsp页面如下:

ssm框架中如何在前端jsp页面上点击一个按钮同时实现增和改的两种操作_第1张图片
点击提交问卷后将对新的页面进行保存(PS:当前页面的选项是通过创建问卷新增的题目,然后从数据库调取数据显示到前端的;)。对题目的删除功能我已经做好了,现在点击提交按钮需要满足对界面的编辑和新增两个功能。
解决思路:
1.前端处理
将jsp页面中的数据按照pojo的形式进行封装(我在前端已经将问卷的每个题目的id加入到了div的value中了),js部分代码如下:
ssm框架中如何在前端jsp页面上点击一个按钮同时实现增和改的两种操作_第2张图片
接下来就是通过jQuery取jsp中DOM中的数据,然后通过ajax提交给后端,部分代码如下:
ssm框架中如何在前端jsp页面上点击一个按钮同时实现增和改的两种操作_第3张图片
自此,后端要的数据已经封装好了。但是小白一想,这里面包括数据库已有的数据和数据库没有的数据,对已有的我们做update操作,对没有的数据我们做insert操作。如何区别数据是否有某条数据呢?就是看这条数据的id是否为空,因为新增的题目中的div下的value是为空的。
2.业务层逻辑
service层对前端传来的数据进行处理,将问卷问题id为空的数据生成放到新的List,将问卷问题id不为空的数据放到一个新的List,service部分代码如下:
ssm框架中如何在前端jsp页面上点击一个按钮同时实现增和改的两种操作_第4张图片
然后对这两个list分别进行插入和更新操作。当然了controller很好写了,直接使用service中的方法即可。
总结:
由于小白第一次碰到点击一个按钮实现两种操作的需求,想了一上午并跟大神讨论一会才明白如何解决。
这种问题关键在于service层如何写,就是对从前端传来的数据分离开来,分别进行处理。这条文章旨在记录我遇到的问题时候解决的思路,如果有幸能对你有帮助,倍感荣幸!

你可能感兴趣的:(ssm框架中如何在前端jsp页面上点击一个按钮同时实现增和改的两种操作)