如何将Angular HTML表单输入发送到Spring Boot Rest Web控制器

马皮斯

我正在尝试通过角度前端和Spring Boot Rest Web控制器将1个或多个基因的列表发送到我的后端

我的html页面:

<div class="container">
  <h1>Clustertool gene(s) input</h1>
  <form (ngSubmit)="onSubmit()" #clusterForm="ngForm">
    <div class="form-group">
      <label for="gene">gene(s) </label>
      <input type="text" class="form-control" id="gene" required>
    </div>
    <button type="submit" class="btn btn-success">Submit</button>
    </form>
</div>

零件

import { Component, OnInit } from '@angular/core';
import { ClustertoolService} from "../../clustertool.service";

@Component({
  selector: 'app-cluster-tool',
  templateUrl: './cluster-tool.component.html',
  styleUrls: ['./cluster-tool.component.css']
})
export class ClusterToolComponent implements OnInit {
  onSubmit() {
    this.clustertoolService.getCell()
  }
  constructor(private clustertoolService: ClustertoolService) { }

  ngOnInit() {
    this.clustertoolService.getCell()
  }
}

服务页面

import { Injectable } from '@angular/core';
import {HttpClient} from "@angular/common/http";
import {Observable} from "rxjs";

@Injectable({
  providedIn: 'root'
})
export class ClustertoolService {
  private clusterUrl: string;

  constructor(private http: HttpClient) {
    this.clusterUrl = 'localhost:8080/clustertool/singleGene';
  }
  getCell(): Observable<any> {
    return this.http.get(this.clusterUrl);
  }
}

应用程序路由模块

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

const routes: Routes = [
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }

网络控制器

package singleCell.controllers.WebController;

import org.springframework.web.bind.annotation.*;
import singleCell.DatabaseAccess.DAO.DatabaseRetriever;
import java.util.ArrayList;
import java.util.List;

@RestController
@CrossOrigin(origins = "http://localhost:4200")
@RequestMapping("/clustertool")
public class ClusterController {

    @RequestMapping(value = "/singleGene", method = RequestMethod.GET)
            public ArrayList singleGeneResponse(@RequestParam String gene){
        return DatabaseRetriever.getSingleGene(gene);
    }

    @RequestMapping(value = "/multipleGenes", method = RequestMethod.GET)
    public ArrayList multipleGeneResponse(@RequestParam List<String> genes){
        System.out.println(genes);
        return DatabaseRetriever.getMultipleGenes(genes);
    }

}

我希望将后端结果发送到前端,以便在那里进一步使用它。将使用js库从数据中绘制图表。

Roshan Pawar先生

首先,您ClustertoolService.getCell()应该接受一个参数gene

getCell(gene: string): Observable<any> {
  return this.http.get(this.clusterUrl+'?gene='+gene);
}

然后,您应该在具有输入值的表单提交时调用此方法。

onSubmit() {
  this.clustertoolService.getCell(this.geneModel); // geneModel is ngModel for your input.
}

编辑:在您的HTML中,您需要在基因输入字段上定义ngModel

<input type="text" class="form-control" id="gene" [(ngModel)]="geneModel" required>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将数据从thymeleaf HTML页面发送到MVC Spring Boot控制器?

Java:无法将包含类型文件输入的Angular 5表单发送到REST后端(Spring Boot)

如何将图像从Laravel控制器发送到API Rest

Spring Boot REST控制器验证

如何访问Codenvy Spring Boot Web控制器?

Spring Boot Rest控制器-将表单编码的主体转换为POJO

使用Axios将文件发送到Spring Boot REST

在Spring Boot中自动将Rest控制器序列化为CSV而不是JSON

如果它是Rest控制器,如何确保Spring Boot自动编组类的对象

如何从 Spring Boot REST 控制器以角度视图获取用户 ID

如何在 Spring Boot REST 控制器中使用请求和路径参数?

如何通过 ajax 调用从 HTML 表单提交表数据发送到 Spring MVC 控制器

Spring Boot MVC如何将文件发送到浏览器/用户

将隐藏的输入从表单发送到Laravel中的控制器

如何将动态数量的 HTML 表单作为对象列表发送到控制器?

从Spring Boot Rest控制器访问JWT令牌

在Spring Boot中处理Rest控制器中的异常

Rest控制器上的Spring Boot Thymeleaf ViewResolver

Spring Boot REST 控制器仅与尾随“/”匹配

Spring Boot Rest 控制器过时参数

Spring Boot控制器中的REST路径链

未映射 Spring Boot Rest 控制器

从spring-boot rest控制器返回JSON对象

Spring Boot无法访问REST控制器

如何将数据发送到控制器

如何将参数发送到控制器

如何将 Bootstrap Modal 表单数据传递给 Spring Boot 控制器

如何将 String[] 从 Thymeleaf 多选表单发送到控制器

yii2:如何将模型从创建表单发送到控制器