SSM框架下如何实现数据从后台传输到前台

这篇文章主要介绍了SSM框架下如何实现数据从后台传输到前台,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

SSM数据从后台传输到前台

在SSM框架下,数据从后台传输到前台主要有以下几种方法:

  • 通过HttpServletRequest对象进行传递
  • 通过ModeandView对象进行传递
  • 通过在在方法中添加形参Model进行传递

接下来分批进行讲解:

通过HttpServletRequest对象进行传递

前台页面Demo:

后台:

@RequestMapping(value="/TestDemo",method=RequestMethod.POST)     public String TestDemo(Model model, member mbr,HttpServletRequest request)      {         String text = "";         request.setAttribute("textname", text);          return "";     }

通过ModeandView对象进行传递

前台:共用第一个前台

后台:

@RequestMapping(value="/TestDemo")     public ModelAndView TestDemo()      {         String text = "hello!";         //ModelAndView中三个参数,跳转页面,接收返回数据的属性,返回的数据         ModelAndView modelAndView = new ModelAndView("Demo","textname",text);          return modelAndView;     }

通过在在方法中添加形参Model进行传递

前台:共用第一个前台

后台:

@RequestMapping(value="/TestDemo")     public String TestDemo(Model model)      {         String text = "hello!";         model.addAttribute("textname", text);         return "Demo";     }

SSM框架前后端数据传输逻辑整理

由于代码的学习一直都是根据视频课以及有相关工作经验的朋友学习,所以自己思考的还是很不足。学习了很长时间碎片化的项目,也写过一些小的项目,但是这之间的逻辑依然没有吃透。尝试总结一下SSM框架下前后端数据传输的实现,也是对这段时间框架学习的小总结。

本文会尽可能地梳理前端、后端、前后端之间的数据传输过程

SSM框架实现思路

另外一个博主的思路也有些类似

实现步骤

1.前端部分的页面请求

这次主要看的是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"部分进行了拦截,

去controller下进行查找

3.在表现层找到了相应的 PatientController.java

根据代码,下面开始深层次套娃

	@RequestMapping(value = "/patientQuery.do", produces = "application/json;charset=utf-8") @ResponseBody public String patientQuery(HttpServletRequest request) throws ParseException { PatientCode patientCode = new PatientCode(); String patientId = BaseUtils.toString(request.getParameter("patientId")); String name = BaseUtils.toString(request.getParameter("name")); patientCode.setPatientId(patientId); patientCode.setDepartmentNo(BaseUtils.toInteger(request.getParameter("departmentNo"))); // patientCode.setDocid(BaseUtils.toInteger(request.getParameter("Docid"))); patientCode.setName(name); patientCode.setWardNo(BaseUtils.toInteger(request.getParameter("wardNo"))); patientCode.setBedNo(BaseUtils.toInteger(request.getParameter("bedNo"))); patientCode.setStart(BaseUtils.toDate(request.getParameter("start"))); patientCode.setEnd(BaseUtils.toDate(request.getParameter("end"))); patientCode.setOutStatus(0);// 设置出院状态为未出院 // System.out.println("当前患者码为:" + patientCode); List> list = patientService.patientQuery(patientCode); log.info("患者查询"); for (Map map : list) {// 此处不对从库中取出的时间做toString转化会报java.lang.IllegalArgumentException String admissionTime = map.get("admissionTime").toString(); map.put("admissionTime", admissionTime); String birth = map.get("birth").toString(); map.put("birth", birth); } JSON json = JSONSerializer.toJSON(new JsonResult>>(list)); return json.toString(); } 

4.表现层controller去向业务层service调用查询方法

5.service中实现的接口是对持久层(一些查询语句封装的地方)的调用

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}) 

6.查询语句与数据库之间的关联是通过数据库连接配置实现的

这里还有一点疑惑,少说了什么 bean的注入等相关知识点未体现

找到了~视图解析器

7.将最后查询到的结果以json的格式传给前端

在步骤3至步骤6实现了查询并返回json的这样一个功能。最后会将得到的结果通过加上.jsp实现传输给前端,利用web.xml

在servlert的这部分功能写的还是有些不到位,servlet主要是请求与响应,所以应该是一个入口也是一个出口。

后话

对于mybatis、spring、springmvc的部分其实还是有一些混淆,虽然能感知到他们分别在哪一个模块发挥了作用。本文仅个人总结,未来思路更清晰时,也会对文章进行修缮~欢迎大家指正。希望能给大家一个参考,也希望大家多多支持0133技术站。

以上就是SSM框架下如何实现数据从后台传输到前台的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Java