在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML5  Java  網(wǎng)絡(luò)安全  HTML/ Angular6+antd+java+SpringMVC,表單提交自動(dòng)接收模型對(duì)

Angular6+antd+java+SpringMVC,表單提交自動(dòng)接收模型對(duì)象?

原諒我WEB小白提個(gè)簡(jiǎn)單的問(wèn)題

  • 前端使用Angular6 + antd 實(shí)現(xiàn),后端使用java
    前端為網(wǎng)格組件添加數(shù)據(jù)時(shí)是彈出antd的模態(tài)窗體,該模態(tài)窗體的內(nèi)容部分(nzContent)
    使用了自定義組件,該自定義組件中有一個(gè)input用來(lái)給用戶輸入的下面是該自定義組件的代碼(其中只使用了angular的表單功能,沒有使用antd的功能):
<form [formGroup]="unit" (ngSubmit)="goSubmit()">
    <div>計(jì)量單位:<input type="text" formControlName="sid"></div>
    <button type="submit">自己的提交</button>
</form>

由于使用了antd,彈出的模態(tài)窗體中會(huì)在footer部出現(xiàn)兩個(gè)按鈕:
圖片描述

上面表單中的input的name是sid,在java中model類的pulibc屬性也是sid
不過(guò)java中的model類還有其他public屬性,而這里的UI上只有一個(gè)sid屬性
(這個(gè)應(yīng)該不影響吧)
angular的ts文件中的發(fā)送請(qǐng)求的代碼是:

goSubmit(){
    console.log("下面是angular表單數(shù)據(jù):");
    console.log(this.unit.value);

    var reqUrl = 'http://localhost:8085/femis/unitUpdateByPrimaryKey';
    this.http.post(reqUrl,this.unit.value)
    .subscribe(
      val=>{
        console.log("這里是執(zhí)行完畢的分支!");
      },
      error=>{
        console.log("這里是錯(cuò)誤的分支:" + error);
      },
      ()=>{ console.log("這里是anyway的分支!"); }
    );
  }

點(diǎn)擊按鈕“提交了啊”,請(qǐng)求成功發(fā)送的后端的java中了,下面是java代碼:

    @PostMapping("/unitUpdateByPrimaryKey")
    public String updateByPrimaryKey(@ModelAttribute Unit unit) {
        System.out.println("進(jìn)入了請(qǐng)求:/unitUpdateByPrimaryKey");
        System.out.println("傳入的參數(shù)是:" + unit.toString());
        return "";
    }

之后Eclipse的控制臺(tái)中打印出:

進(jìn)入了請(qǐng)求:/unitUpdateByPrimaryKey
傳入的參數(shù)是:Unit [sid=null, serialno=null, status=null, createdate=null, createcomputer=null, createuser=null]
  • 我的疑惑:
    前端的input上的value沒有傳遞給后端?
    整個(gè)過(guò)程沒有報(bào)錯(cuò),但是后端就是沒有收到數(shù)據(jù),如何解決?
    困擾了兩天了,thanks for any help!!
  • 我的聯(lián)系方式:
    409223171@qq.com
    QQ同上,微信同上
回答
編輯回答
愛礙唉

哎,真是心涼涼,在segmentfault上發(fā)的幾個(gè)問(wèn)題都是自己解決的。下面公布正確答案吧:

  • 下面是angular中模板代碼:

    <form [formGroup]="unit" (submit)="goSubmit()">
      <div>計(jì)量單位:<input type="text" formControlName="sid"></div>
      <button type="submit">自己的提交</button>
    </form>
  • 下面是發(fā)送請(qǐng)求的代碼:

    goSubmit(){
      console.log("下面是angular表單數(shù)據(jù):");
      console.log(this.unit.value);
    
      var reqUrl = 'http://localhost:8085/femis/unitUpdateByPrimaryKey';
      this.http.post(reqUrl,this.unit.value)
      .subscribe(
        val=>{
          console.log("這里是執(zhí)行完畢的分支!");
        },
        error=>{
          console.log("這里是錯(cuò)誤的分支:" + error);
        },
        ()=>{ console.log("這里是anyway的分支!"); }
      );
    }
  • 下面是java端響應(yīng)請(qǐng)求的代碼:

     @PostMapping("/unitUpdateByPrimaryKey")
     public String updateByPrimaryKey(@RequestBody Unit unit) {
         System.out.println("進(jìn)入了請(qǐng)求:/unitUpdateByPrimaryKey");
         System.out.println("傳入的參數(shù)是:" + unit.toString());
         return "";
     }
  • 已經(jīng)測(cè)試通過(guò),2018年9月10日 17:28:35
2018年5月16日 13:39