iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >SSM框架下如何实现数据从后台传输到前台
  • 767
分享到

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

2024-04-02 19:04:59 767人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录SSM数据从后台传输到前台通过httpservletRequest对象进行传递通过ModeandView对象进行传递通过在在方法中添加形参Model进行传递SSM框架前后端数据传

SSM数据从后台传输到前台

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

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

接下来分批进行讲解:

通过HttpServletRequest对象进行传递

前台页面Demo:

<fORM action="TestDemo.do" method="post">
<input type="text" name="username" value="${requestScope.textname}">
<input type="submit" value="提交">
</form>

后台:

@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"的部分进行的表格查询结果展示):

<div class="table-box">
			<table>
				<thead>
					<tr>
						<th class="num">序号</th>
						<th class="time">住院号</th>
						<th class="process">姓名</th>
						<th class="num">性别</th>
						<th class="node">科室</th>
						<th class="num">病房</th>
						<th class="num">床位号</th>
						<th class="num">入院情况</th>
						<th class="time">入院时间</th>
					</tr>
				</thead>
				<tbody id="show">
				</tbody>
			</table>
		</div>

这里的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<Map<String, Object>> list = patientService.patientQuery(patientCode);
		log.info("患者查询");
		for (Map<String, Object> 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<Map<String, Object>>>(list));
		return json.toString();
	}

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

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

Mapper部分 PatientMapper .java接口

@Repository("patientMapper")
public interface PatientMapper {
	
	void patientAdd(Patient patient);
	
	List<Map<String, Object>> patientQuery(PatientCode patientCode);
	

xml部分查询

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qut.mapper.PatientMapper">
	<insert id="patientAdd" parameterType="com.qut.pojo.Patient">
		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})
	</insert>
	<select id="patientQuery"
		parameterType="com.qut.pojo.PatientCode" resultType="map">
		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 &gt;= #{start})
		and
		if(#{end} is
		null,0=0,admissionTime &lt;= #{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 &gt;= #{outStart})
		and
		if(#{outEnd} is null,0=0, leaveTime &lt;= #{outEnd})
		and
		if(#{outStatus} is null,0=0,leaveState = #{outStatus})
		and
		if(#{cerificateNo} is null,0=0,certificateNo = #{cerificateNo})
		order
		by
		id,admissionTime
	</select>

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

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

找到了~视图解析器

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

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

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

后话

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

--结束END--

本文标题: SSM框架下如何实现数据从后台传输到前台

本文链接: https://www.lsjlt.com/news/147932.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SSM框架下如何实现数据从后台传输到前台
    目录SSM数据从后台传输到前台通过HttpServletRequest对象进行传递通过ModeandView对象进行传递通过在在方法中添加形参Model进行传递SSM框架前后端数据传...
    99+
    2024-04-02
  • SSM框架前台传参数到后台乱码怎么办
    这篇文章给大家分享的是有关SSM框架前台传参数到后台乱码怎么办的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。最近在做一个SSM框架的项目,总是遇到一个问题,就是后台接收前端传递的中文参数的时候,参数是乱码的,导致...
    99+
    2023-05-30
    ssm
  • SpringMVC中如何实现前台向后台传递值
    今天就跟大家聊聊有关SpringMVC中如何实现前台向后台传递值,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、概述。在很多企业的开法中常常用到SpringMVC+Spring+H...
    99+
    2023-05-31
    springmvc 如何实现 传值
  • ajax如何实现从后台拿数据显示在HTML前端
    小编给大家分享一下ajax如何实现从后台拿数据显示在HTML前端,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!HTML页面,ajax是基于id的,所有用id表示。...
    99+
    2023-06-08
  • ajax请求后台得到json数据后如何动态生成树形下拉框
    这篇文章主要介绍了ajax请求后台得到json数据后如何动态生成树形下拉框,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。如下所示:<s...
    99+
    2024-04-02
  • 在SSM框架中将图片上传到数据库中的实现代码
    今天我们来看看SSM中如何将图片转换成二进制,最后传入到自己的数据库中,好了,废话不多说,我们开始今天的学习,我这里用的编辑器是IDEA 1、导入图片上传需要的jar依赖包 &l...
    99+
    2024-04-02
  • Html5新标签datalist如何实现输入框与后台数据库数据的动态匹配
    这篇文章主要介绍Html5新标签datalist如何实现输入框与后台数据库数据的动态匹配,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!最近项目中涉及到一个小功能,客户在选择供应商时,...
    99+
    2024-04-02
  • $.ajax传JSON数据到后台出现报错问题该如何解决
    $.ajax传JSON数据到后台出现报错问题该如何解决,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收...
    99+
    2024-04-02
  • Windows平台下Java分布式编程算法:如何实现高效的数据传输?
    Java分布式编程是一种常见的技术,它可以将不同的计算机或设备连接到一起,实现数据共享和处理。在Windows平台下,Java分布式编程的应用越来越广泛,但数据传输问题却是一个普遍存在的挑战。本文将介绍如何实现高效的数据传输,以优化Java...
    99+
    2023-08-17
    分布式 编程算法 windows
  • vue-element-admin如何从mock数据过渡到使用后台接口
    目录1. 移除 mock2. 替换 mock 为后台接口请求3. 补全请求,状态参数总结1. 移除 mock 修改 vue.config.js 文件 1. 首先将 before: ...
    99+
    2023-05-17
    vue-element-admin vue mock数据 mock使用后台接口
  • 小程序如何实现采集录音并上传到后台
    这篇文章主要介绍小程序如何实现采集录音并上传到后台,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下demo.wxml<view>  <butto...
    99+
    2024-04-02
  • 如何在 Spring 框架中使用 PHP 实现同步数据传输?
    Spring 框架是一个流行的 Java 开发框架,可以帮助开发人员轻松构建高质量的应用程序。与此同时,PHP 是另一种非常流行的编程语言,用于构建 Web 应用程序。在某些情况下,您可能需要在 Spring 框架中使用 PHP 进行数据...
    99+
    2023-10-29
    同步 linux spring
  • BootStrap中如何实现selectpicker后台动态绑定数据
    这篇文章主要介绍BootStrap中如何实现selectpicker后台动态绑定数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!html部分代码<select cl...
    99+
    2024-04-02
  • 从Java函数到Spring框架:如何实现无缝转换?
    Java函数和Spring框架是两个非常重要的概念。Java函数是Java编程语言的基本组成部分,用于实现特定的任务。Spring框架则是一个强大的框架,用于开发Java企业应用程序。在本文中,我们将探讨如何将Java函数转换为Sprin...
    99+
    2023-09-16
    函数 spring 框架
  • 微信小程序如何实现前台循环数据绑定
    这篇文章将为大家详细讲解有关微信小程序如何实现前台循环数据绑定,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。微信小程序之前台循环数据绑定微信小程序的循环数据绑定到wxml...
    99+
    2024-04-02
  • PHP容器技术的新进展:如何实现Spring框架的实时数据传输?
    随着互联网的快速发展,各种技术不断涌现。PHP作为一种流行的编程语言,一直以来在Web应用程序开发中扮演着重要的角色。而PHP容器技术则是近年来备受关注的技术之一,它可以轻松地将PHP应用程序打包成容器,实现快速部署和移植。本文将介绍PH...
    99+
    2023-09-12
    容器 实时 spring
  • 微信小程序如何实现后台解密用户数据
    这篇文章主要介绍微信小程序如何实现后台解密用户数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 微信小程序后台解密用户数据实例详解openId : 用户在当前小程序的唯一...
    99+
    2024-04-02
  • Java Spring 如何在 Windows 环境下实现实时数据传输?
    Java Spring 是一个非常流行的开源框架,它提供了丰富的功能和工具,可以帮助开发者快速构建高效、可维护的应用程序。在实时数据传输方面,Java Spring 提供了多种解决方案,可以让开发者轻松地实现实时数据传输功能。本文将介绍如...
    99+
    2023-10-01
    spring 实时 windows
  • vue与vue-i18n如何实现后台数据的多语言切换功能
    小编给大家分享一下vue与vue-i18n如何实现后台数据的多语言切换功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在XXX...
    99+
    2024-04-02
  • jQuery中如何实现ajax请求后台返回json数据并渲染HTML
    小编给大家分享一下jQuery中如何实现ajax请求后台返回json数据并渲染HTML,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作