SSM框架前后端信息交互实现流程详解

一、从前端向后端传送数据

常见的3种方式

1、form表单的action:此方法可以提交form表单内的输入数据,也可同时提交某些隐藏但设置有默认值的<input>,如修改问题时,我们除了提交问题的相关信息,还需要将用户的编号提交给后端,此时就可以设置一个默认值为用户编号的<input>,并将其隐藏

2、<a>标签的href属性:此方法一般用来提交一些较少的数据,比如对象编号

1 <a href="<%=path%>/Question/DisplayQuestionInfo?question_id=${question.question_id}" rel="external nofollow" >${question.question_title}</a>
比如该处代码,显示了问题的标题信息,并将其作为超链接,点击该链接时进入后端Controller类的方法,并向其发送问题编号question_id

3、ajax请求:此方法一般在不需要页面跳转时采用,可以局部刷新页面,比如向后端提交关注某用户的信息,后端收到ajax的请求数据,对数据库进行操作,并通过@Response注解返回信息给前端,然后前端进行相关操作,可以不进行页面跳转

前端部分代码

<script language="JavaScript">
  ......
      function SaveUserFollowUser(){
      var login_user_id = ${login_user_id}    //登录者(发起者)编号
      var user_id = ${user.user_id};       //接受者用户编号

      $.ajax({
        url:"<%=path%>/UserRelation/SaveUserFollowUser",
        type:"POST",
        async: false,
        contentType:"application/json;charset=UTF-8",
        dataType:'json',

        data:JSON.stringify({"from_user_id":login_user_id,"to_user_id":user_id}), //JSON对象转为字符串
        success:function(data){
          /* 可在后端增加判断发起者和接受者用户是否是同一用户的判断 */
          if (data == true) {
            alert("关注成功");
          } else {
            alert("您已经关注该用户,不可重复关注")
          }
        }
      });
    }
</script>

......
      <button class="btn btn-success" style="width: 100px" onclick="SaveUserFollowUser()">关注用户</button>
......

后端Controller类

/**
 * 表现层 用户关系相关 (关注用户、被用户关注、关注问题、赞同回答)
 */
@Controller
@RequestMapping("/UserRelation")
public class UserRelationController {

  ......

   /**
   * 新增某用户关注某用户
   * @param map
   * @return
   */
  @RequestMapping(value = "/SaveUserFollowUser",method = {RequestMethod.POST})
  public @ResponseBody Boolean SaveUserFollowUser(@RequestBody Map<String,String> map) {

    //关注发出者编号
    Integer from_user_id = Integer.parseInt(map.get("from_user_id"));
    //关注接受者编号
    Integer to_user_id = Integer.parseInt(map.get("to_user_id"));
    //是否新增成功
    //该项可以增加发起者用户和接受者用户是否是同一用户的判断,即比较from_user_id与to_user_id是否相等,如果相等则关注失败
    //通过返回Integer类型而非Boolean类型的做判断 本程序并未增加这项判断
    Boolean flag = userRelationService.saveUserFollowUser(from_user_id,to_user_id);
    return flag;
  }
  ......
}

二、从后端向前端传送数据

1、Model

后端部分代码

/**
 * 表现层 用户
 */
@Controller
@RequestMapping(value = "/User")
public class UserController {

  ......

  /**
   * 进入个人信息页面
   * @param httpSession
   * @param model
   * @return
   */
  @RequestMapping(value = "/DisplayMyInfo")
  public String DisplayMyInfo(HttpSession httpSession, Model model) {
    Integer user_id = (Integer) httpSession.getAttribute("login_user_id");  //登录者个人编号
    User user = userService.findUserById(user_id); //登录者个人信息

    model.addAttribute("user",user);       //将登录者个人信息返回给前端
    return "User/myInfo";
  }
  ......
}

前端部分代码

......
      <div class="col-md-6 col-md-offset-5" style="text-align: left;">
        <h2>用户名:${user.user_name}</h2>
        <h2>用户昵称:${user.user_nickname}</h2>
        <h2>用户性别:${user.user_sex}</h2>
        <h2>用户邮箱:${user.user_email}</h2>
        <h2>用户密码:${user.user_password}</h2>
      </div>
......

此时可以通过${}直接取得后端传来的数据

2、ModelAndView

该方法与Model相比,多增加了返回的视图(View),对于返回给前端的具体数据处理类似

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • layui框架与SSM前后台交互的方法

    采用layui前台框架实现前后台交互,数据分页显示以及删除操作,具体方式如下: 一.数据分页显示 1.前端 (1)html页面 <!--轮播数据分页显示--> <table class="layui-hide" id="content_lbt" lay-filter="content_lbt_filter"></table> (2)请求渲染数据 $(function() { /*轮播数据分页显示*/ layui

  • 基于SSM框架实现简单的登录注册的示例代码

    一.环境配置工程目录 在pom.xml添加依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&

  • SSM框架中测试单元的使用 spring整合Junit过程详解

    测试类中的问题和解决思路 问题 在测试类中,每个测试方法都有以下两行代码: ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml"); IAccountService as = ac.getBean("accountService",IAccountService.class); 这两行代码的作用是获取容器,如果不写的话,直接会提示空指针异常.所以又不能轻易删掉. 解决思路分析 针对

  • SSM框架下实现登录注册的示例代码

    基本配置:jdk1.8   tomcat 8  MyEclipse 先打好地基: spring配置文件 application.xml: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-

  • Google Kaptcha 框架实现登录验证码功能(SSM 和 SpringBoot)

    一.效果图: 二.导入 jar 包 1.由于这是大神写好封装起来的一个框架,所有我们使用前得先下载相关的 jar 包 第一种:maven <!-- 验证码 --> <!-- https://mvnrepository.com/artifact/com.github.penggle/kaptcha --> <dependency>     <groupId>com.github.penggle</groupId>     <artifactI

  • 使用eclipse + maven一步步搭建SSM框架教程详解

    SSM (SSM 框架集) SSM(Spring+SpringMVC+MyBatis)框架集由Spring.SpringMVC.MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架. 其中spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架. SpringMVC分离了控制器.模型对象.分派器以及处理程序对象的角色,这种分离让它们更容易进行定制. MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架. 0.系统环境 1)Windows

  • 使用IDEA搭建SSM框架的详细教程(spring + springMVC +MyBatis)

    1 框架组成 Spring SpringMVC MyBatis 2 所需工具 Mysql 8.0.15 ​数据库管理系统,创建数据库 Tomcat 8.5.51 ​用于部署web项目 Maven 3.6.1 ​项目构建.项目依赖管理 lombok 1.18.10(可用可不用工具) ​用于类注解创建setter.getter.无参构造.全参构造.toString等函数 ​注:只导入依赖,不安装插件是不起作用的 3 搭建步骤 3.1 新建一个空Maven项目,填写项目相关信息,完成 3.2 添加we

  • 使用idea2017搭建SSM框架(图文步骤)

    搭建个SSM框架居然花费了我好长时间!特此记录! 需要准备的环境: idea 2017.1 jdk1.8 Maven 3.3.9 请提前将idea与Maven.jdk配置好,本次项目用的都是比较新的 注:配置完ide红线报错没关系!可以run! 步骤: 一.首先使用idea新建一个Maven webapp项目 点击Finish,第一次搭建可能会很慢,甚至可能需要VPN才能搭建成功 二.搭建目录结构 我这里列出的是搭建完了之后所有的目录和文件,诸位先把目录文件建起来,然后我在给出文件内容 这里的目

  • SSM框架前后端信息交互实现流程详解

    一.从前端向后端传送数据 常见的3种方式 1.form表单的action:此方法可以提交form表单内的输入数据,也可同时提交某些隐藏但设置有默认值的<input>,如修改问题时,我们除了提交问题的相关信息,还需要将用户的编号提交给后端,此时就可以设置一个默认值为用户编号的<input>,并将其隐藏 2.<a>标签的href属性:此方法一般用来提交一些较少的数据,比如对象编号 1 <a href="<%=path%>/Question/Dis

  • Vue生命周期与后端交互实现流程详解

    目录 表单控制 购物车案例 v-model进阶(了解) vue生命周期 与后端交互 电影案例 表单控制 1.input:checkbox(单选,多选),radio(单选) 2.代码展示 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="j

  • Java中SSM框架实现增删改查功能代码详解

    记录一下自己第一次整合smm框架的步骤. 参考博客和网站有:我没有三颗心脏 How2J学习网站 1.数据库使用的是mySql,首先创建数据库ssm1,并创建表student create database ssm1; use ssm1; CREATE TABLE student( id int(11) NOT NULL AUTO_INCREMENT, student_id int(11) NOT NULL UNIQUE, name varchar(255) NOT NULL, age int(1

  • thymeleaf实现前后端数据交换的示例详解

    目录 1.前端传数据后端接收: 2.后端对数据判断后返回信息给前端: Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎.它与 JSP,Velocity,FreeMaker 等模板引擎类似,也可以轻易地与 Spring MVC 等 Web 框架集成.与其它模板引擎相比,Thymeleaf 最大的特点是,即使不启动 Web 应用,也可以直接在浏览器中打开并正确显示模板页面 . 1.前端传数据后端接收: 用户在登录界面输入用户名和密码传给后端controller,由后

  • ssm框架Springmvc文件上传实现代码详解

    一.上传: 1)编写前台文件上传表单.Method必须为post,enctype为mutipart/form-data <body> <%--文件上传 1)method必须指定为post 2)enctype必须指定为multipart/form-data --%> <h1>头像上传</h1> <form action="${pageContext.request.contextPath}/admin/headpic" method=

  • springboot+angular4前后端分离 跨域问题解决详解

    springboot中新增一个过滤器如下: package com.rtpksps.kss.config; import org.springframework.stereotype.Component; import javax.servlet.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * @author Administrator * @title: OriginFilt

  • ssm+vue前后端分离框架整合实现(附源码)

    前言 本文针对Spring+SpringMVC+Mybatis后台开发框架(基于maven构建)与vue前端框架(基于webpack构建)的项目整合进行介绍,对于ssm和vue单独项目的搭建不作为本文的重点,而着重介绍两者之间交互的要点. SSM 项目结构 说明 项目有service和web两个子项目组成,web依赖于service,其中web主要是control层内容,service则对应service层,而MyBatis内容放在了service项目中,spring配置文件放在了web项目中.

  • Python Flask前后端Ajax交互的方法示例

    之前总结过flask里的基础知识,现在来总结下flask里的前后端数据交互的知识,这里用的是Ajax 一. post方法 1.post方法的位置:在前端HTML里,绑定在一个按钮的点击函数里,或者一个鼠标输入框点击离开事件. (1)数据附在URL里(请求路径),发送到后端. /*前端HTML<script>里:*/ $.post("/js_post/"+ip, data_to_backend, function(data){alert("success "

  • 如何理解Vue前后端数据交互与显示

    一.技术概述 将后端所计算的数据呈现在前端页面的相应位置并根据用户点击操作改变相应的数据和界面,再传值给后端.该技术是Web开发必备,是前后端交互的纽带.难点在于获取后端数据并且防止数据联动. 二.技术详述 1. 从接口获取后端数据 (1) 仔细查看后端所传数据的类型.主要是区分数组和单个数据.查看后端的请求方式,区分post或者get. (2) 首先,在data中return一个xxxData:[]数组或一个变量xxxData:<类型>来接收后端传来的数据. (3) 在方法中定义一个请求函数

  • AJAX SpringBoot 前后端数据交互的项目实现

    目录 1.Ajax概述 2.基于JQuery的AJAX语法 1. Ajax 概述 Ajax 的英文全称是 ”Asynchronous JavaScript and XML“,即 ”异步的 JavaScript 和 XML“.其核心是通过 JavaScript 的 XMLHttpRequest 对象,以一种异步的方式,向服务器发送数据请求,并且通过该对象接收请求返回的数据,从而实现客户端与服务器端的数据交互. 优点:Ajax 能够刷新指定的页面区域(局部刷新),而不是刷新整个页面,从而减少客户端和

随机推荐