欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SSM框架前后端信息交互實(shí)現(xiàn)流程詳解

 更新時(shí)間:2020年07月17日 14:27:46   作者:HuskySir  
這篇文章主要介紹了SSM框架前后端信息交互實(shí)現(xiàn)流程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

一、從前端向后端傳送數(shù)據(jù)

常見的3種方式

1、form表單的action:此方法可以提交form表單內(nèi)的輸入數(shù)據(jù),也可同時(shí)提交某些隱藏但設(shè)置有默認(rèn)值的<input>,如修改問題時(shí),我們除了提交問題的相關(guān)信息,還需要將用戶的編號(hào)提交給后端,此時(shí)就可以設(shè)置一個(gè)默認(rèn)值為用戶編號(hào)的<input>,并將其隱藏

2、<a>標(biāo)簽的href屬性:此方法一般用來提交一些較少的數(shù)據(jù),比如對象編號(hào)

1 <a href="<%=path%>/Question/DisplayQuestionInfo?question_id=${question.question_id}" rel="external nofollow" >${question.question_title}</a>
比如該處代碼,顯示了問題的標(biāo)題信息,并將其作為超鏈接,點(diǎn)擊該鏈接時(shí)進(jìn)入后端Controller類的方法,并向其發(fā)送問題編號(hào)question_id

3、ajax請求:此方法一般在不需要頁面跳轉(zhuǎn)時(shí)采用,可以局部刷新頁面,比如向后端提交關(guān)注某用戶的信息,后端收到ajax的請求數(shù)據(jù),對數(shù)據(jù)庫進(jìn)行操作,并通過@Response注解返回信息給前端,然后前端進(jìn)行相關(guān)操作,可以不進(jìn)行頁面跳轉(zhuǎn)

前端部分代碼

<script language="JavaScript">
  ......
      function SaveUserFollowUser(){
      var login_user_id = ${login_user_id}    //登錄者(發(fā)起者)編號(hào)
      var user_id = ${user.user_id};       //接受者用戶編號(hào)

      $.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對象轉(zhuǎn)為字符串
        success:function(data){
          /* 可在后端增加判斷發(fā)起者和接受者用戶是否是同一用戶的判斷 */
          if (data == true) {
            alert("關(guān)注成功");
          } else {
            alert("您已經(jīng)關(guān)注該用戶,不可重復(fù)關(guān)注")
          }
        }
      });
    }
</script>

......
      <button class="btn btn-success" style="width: 100px" onclick="SaveUserFollowUser()">關(guān)注用戶</button>
......

后端Controller類

/**
 * 表現(xiàn)層 用戶關(guān)系相關(guān) (關(guān)注用戶、被用戶關(guān)注、關(guān)注問題、贊同回答)
 */
@Controller
@RequestMapping("/UserRelation")
public class UserRelationController {

  ......

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

    //關(guān)注發(fā)出者編號(hào)
    Integer from_user_id = Integer.parseInt(map.get("from_user_id"));
    //關(guān)注接受者編號(hào)
    Integer to_user_id = Integer.parseInt(map.get("to_user_id"));
    //是否新增成功
    //該項(xiàng)可以增加發(fā)起者用戶和接受者用戶是否是同一用戶的判斷,即比較from_user_id與to_user_id是否相等,如果相等則關(guān)注失敗
    //通過返回Integer類型而非Boolean類型的做判斷 本程序并未增加這項(xiàng)判斷
    Boolean flag = userRelationService.saveUserFollowUser(from_user_id,to_user_id);
    return flag;
  }
  ......
}

二、從后端向前端傳送數(shù)據(jù)

1、Model

后端部分代碼

/**
 * 表現(xiàn)層 用戶
 */
@Controller
@RequestMapping(value = "/User")
public class UserController {

  ......

  /**
   * 進(jìn)入個(gè)人信息頁面
   * @param httpSession
   * @param model
   * @return
   */
  @RequestMapping(value = "/DisplayMyInfo")
  public String DisplayMyInfo(HttpSession httpSession, Model model) {
    Integer user_id = (Integer) httpSession.getAttribute("login_user_id");  //登錄者個(gè)人編號(hào)
    User user = userService.findUserById(user_id); //登錄者個(gè)人信息

    model.addAttribute("user",user);       //將登錄者個(gè)人信息返回給前端
    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>
......

此時(shí)可以通過${}直接取得后端傳來的數(shù)據(jù)

2、ModelAndView

該方法與Model相比,多增加了返回的視圖(View),對于返回給前端的具體數(shù)據(jù)處理類似

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring中@Scope注解用法解析

    Spring中@Scope注解用法解析

    這篇文章主要介紹了Spring中@Scope注解用法解析,@Scope注解主要作用是調(diào)節(jié)Ioc容器中的作用域,在Spring IoC容器中主要有以下五種作用域,需要的朋友可以參考下
    2023-11-11
  • SpringBoot中使用Knife4J的解決方案

    SpringBoot中使用Knife4J的解決方案

    knife4j是為Java?MVC框架集成Swagger生成Api文檔的增強(qiáng)解決方案,這篇文章主要介紹了SpringBoot中使用Knife4J,需要的朋友可以參考下
    2022-10-10
  • 基于Java中的StringTokenizer類詳解(推薦)

    基于Java中的StringTokenizer類詳解(推薦)

    下面小編就為大家?guī)硪黄贘ava中的StringTokenizer類詳解(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • Springboot源碼 AbstractAdvisorAutoProxyCreator解析

    Springboot源碼 AbstractAdvisorAutoProxyCreator解析

    這篇文章主要介紹了Springboot源碼 AbstractAdvisorAutoProxyCreator解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 一篇文章帶你入門Springboot沙箱環(huán)境支付寶支付(附源碼)

    一篇文章帶你入門Springboot沙箱環(huán)境支付寶支付(附源碼)

    螞蟻沙箱環(huán)境 (Beta) 是協(xié)助開發(fā)者進(jìn)行接口功能開發(fā)及主要功能聯(lián)調(diào)的輔助環(huán)境。沙箱環(huán)境模擬了開放平臺(tái)部分產(chǎn)品的主要功能和主要邏輯
    2021-06-06
  • java中Path和ClassPath用法比較

    java中Path和ClassPath用法比較

    在本篇文章里小編給大家分享了關(guān)于java中Path和ClassPath用法比較內(nèi)容,有需要的朋友們學(xué)習(xí)下。
    2019-01-01
  • Cookie的工作原理和應(yīng)用詳解

    Cookie的工作原理和應(yīng)用詳解

    Cookies是 web站點(diǎn)放置到你的硬盤上的程序。它們駐留在你的計(jì)算機(jī)上收集關(guān)于你在因特網(wǎng)上所做的一切事情的信息,并且 web站點(diǎn)可以在任何時(shí)候讀取到Cookies收集到的所有信息
    2021-06-06
  • 對Java的面對對象編程中對象和引用以及內(nèi)部類的理解

    對Java的面對對象編程中對象和引用以及內(nèi)部類的理解

    這篇文章主要介紹了對Java的面對對象編程中對象和引用以及內(nèi)部類的理解,需要的朋友可以參考下
    2016-01-01
  • IDEA怎么設(shè)置maven配置

    IDEA怎么設(shè)置maven配置

    這篇文章主要介紹了IDEA怎么設(shè)置maven配置,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • java編程兩種樹形菜單結(jié)構(gòu)的轉(zhuǎn)換代碼

    java編程兩種樹形菜單結(jié)構(gòu)的轉(zhuǎn)換代碼

    這篇文章主要介紹了java編程兩種樹形菜單結(jié)構(gòu)的轉(zhuǎn)換代碼,首先介紹了兩種樹形菜單結(jié)構(gòu)的代碼,然后展示了轉(zhuǎn)換器實(shí)例代碼,最后分享了相關(guān)實(shí)例及結(jié)果演示,具有一定借鑒價(jià)值,需要的朋友可以了解下。
    2017-12-12

最新評(píng)論