SSM框架 | 您所在的位置:网站首页 › 前端如何收集list数据 › SSM框架 |
由于代码的学习一直都是根据视频课以及有相关工作经验的朋友学习,所以自己思考的还是很不足。学习了很长时间碎片化的项目,也写过一些小的项目,但是这之间的逻辑依然没有吃透。尝试总结一下SSM框架下前后端数据传输的实现,也是对这段时间框架学习的小总结。 文章目录 前言一、SSM框架实现思路二、实现步骤1.前端部分的页面请求2.根据spring_mvc.xml配置文件,去寻找相应的controller3.在表现层找到了相应的 PatientController.java4.表现层controller去向业务层service调用查询方法5.service中实现的接口是对持久层(一些查询语句封装的地方)的调用6.查询语句与数据库之间的关联是通过数据库连接配置实现的7.将最后查询到的结果以json的格式传给前端 后话 前言本文会尽可能地梳理前端、后端、前后端之间的数据传输过程,可能存在个人理解的偏差之处,欢迎指正 一、SSM框架实现思路这里参考了博客: https://blog.csdn.net/qq_41464123/article/details/104358326?utm_medium=distribute.pc_relevant.none-task-blog-title-1&spm=1001.2101.3001.4242
这次主要看的是ajax传值,页面主要涉及这部分查询结果的展示。 JSP部分代码如下(注意是id="show"的部分进行的表格查询结果展示): 序号 住院号 姓名 性别 科室 病房 床位号 入院情况 入院时间这里的url地址(url : ‘patient/patientQuery.do’)结合jsp,在后面会去spring_mvc的文件中进行查询。 JS部分代码如下(仅展示ajax部分): var list; var $tbody = $("#show"); var start = 0; var end = 15; function patientQuery() { var queryData = $("#patientFindForm").serialize(); $.ajax({ url : 'patient/patientQuery.do', type : 'post', data : queryData, dataType : 'JSON', success : function(result) { if (result.state == 0) { var lists = result.data; $tbody.empty(); // 分页 if (lists.length > 0) { $('.pagination').pagination(lists.length, { callback : function(page) { start = page * this.items_per_page; end = (page + 1) * this.items_per_page; $tbody.empty(); showList(lists, start, end); return true; }, display_msg : true, // 是否显示记录信息 setPageNo : true // 是否显示跳转第几页 }); $("#showbuttom").show(); } else { alert("未找到信息!"); $("#showbuttom").hide(); $(".clear").click(); } showList(lists, start, end); } } }); } 2.根据spring_mvc.xml配置文件,去寻找相应的controller这里是实现了一个url地址请求的拦截,可以看见这里将原始地址的".do"部分进行了拦截, 根据代码,下面开始深层次套娃 Mapper部分 PatientMapper .java接口 @Repository("patientMapper") public interface PatientMapper { /** * 病人的添加 * * @param patient */ void patientAdd(Patient patient); /** * 病人列表的查询 * * @return */ List patientQuery(PatientCode patientCode); /*省略*/xml部分查询 insert into patient (patientId,patientName,gender,nation,birth,department,certificateNo,workUnit,maritalStatus,doctorId,admissionTime,homeAddress,homePhone,contacts,contactsPhone,admissionStatus,roomType,roomNo,bedNo,state) values (#{patientId},#{name},#{gender},#{nation},#{birth},#{department},#{cerificateNo},#{workUnit},#{maritalStatus},#{doctorId},NOW(),#{homeAddress},#{homePhone},#{contacts},#{contactsPhone},#{admissionStatus},#{roomType},#{roomNo},#{bedNo},#{state}) select a.id as "id", a.patientId as "patientId", a.patientName as "name", a.gender as "gender", a.nation as "nation", a.birth as "birth", a.department as "department", g.`name` as "departmentName", a.certificateNo as "cerificateNo", a.workUnit as "workUnit", a.doctorId as "doctorId", b.`name` as "doctorName", a.admissionTime as "admissionTime", a.homeAddress as "homeAddress", a.homePhone as "homePhone", a.contacts as "contacts", a.contactsPhone as "contactsPhone", a.admissionStatus as "admissionStatus", a.roomType as "roomType", c.`name` as "roomTypeName", a.roomNo as "roomNo", a.bedNo as "bedNo", a.state as "state", a.settlementState as "settlementState", a.leaveTime as "leaveTime" from patient a LEFT JOIN doctor b ON a.doctorId = b.doctorId LEFT JOIN category c ON a.roomType = c.type LEFT JOIN ( SELECT e.parameter_values "value",e.parameter_name "name" from parameter d LEFT JOIN paracode e ON d.`code` = e.`code` where d.name="科室" ) g ON a.department = g.`value` where 1=1 and if(#{patientId} is null,0=0,patientId=#{patientId}) and if(#{name} is null,0=0, patientName like CONCAT('%',#{name},'%')) and if(#{departmentNo} is null,0=0,department=#{departmentNo}) and if(#{Docid} is null,0=0,a.doctorId=#{Docid}) and if(#{start} is null,0=0,admissionTime ;= #{start}) and if(#{end} is null,0=0,admissionTime ;= #{end}) and if(#{wardNo} is null,0=0,roomNo=#{wardNo}) and if(#{bedNo} is null,0=0,bedNo=#{bedNo}) and if(#{outStart} is null,0=0,leaveTime ;= #{outStart}) and if(#{outEnd} is null,0=0, leaveTime ;= #{outEnd}) and if(#{outStatus} is null,0=0,leaveState = #{outStatus}) and if(#{cerificateNo} is null,0=0,certificateNo = #{cerificateNo}) order by id,admissionTime 6.查询语句与数据库之间的关联是通过数据库连接配置实现的这里还有一点疑惑,少说了什么 bean的注入等相关知识点未体现
在步骤3至步骤6实现了查询并返回json的这样一个功能。最后会将得到的结果通过加上.jsp实现传输给前端,利用web.xml 对于mybatis、spring、springmvc的部分其实还是有一些混淆,虽然能感知到他们分别在哪一个模块发挥了作用。本文仅个人总结,未来思路更清晰时,也会对文章进行修缮~欢迎大家指正。 |
CopyRight 2018-2019 实验室设备网 版权所有 |