如何从 angular 获取 HTTP ID 并将其发送到 java



我在Angular中有这段代码,我需要获取这个simboxid并将其发送到java端点。

mno.components.ts ngOnInit(( {

this.mList.getMnosList().then(data=>this.mnos = data);
}

mno.service.ts

  getMnosList() {
    var simboxid = this.getItem.id;
    return this.http.get(`${environment.apiUrl}/MNO` +  ['simboxid'] )
                .toPromise()
                .then(res => <mno[]> res)
                .then(data => { 
                  return data;
      });

移动网络运营商

 export interface mno{
     id;
     name;}

在爪哇中:

@Entity
@Table(name="MNO")
public class MNOList {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    int id;
    int simbox_id;
    public int getSimbox_id() {
        return simbox_id;
    }
    public void setSimbox_id(int simbox_id) {
        this.simbox_id = simbox_id;
    }
    String name;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

Java 端点:

@Path("/MNO")
@ApplicationScoped
@Produces("application/json")
public class MnoListPoint {

    @Inject
    EntityManager em;
    @GET
    public String get(@QueryParam("simboxid") String id) {
        return JsonbBuilder.create().toJson(em.createNamedQuery("Select m from MnoList where simbox_id = :simboxid").setParameter("simboxid", id).getResultList());
    }
}

帮助我了解如何在单击特定 simbox 时获取此simbox_id。

这是我需要的 id,因为这 2 个表 simbox 和 Mno 已连接。

从您的mno.service.ts服务:

getMnosList() {
    var simboxid = this.getItem.id;
    return this.http.get(`${environment.apiUrl}/MNO?simboxid=${simboxid}` )
            .pipe(map(this.extractData)),
                   this.catchError);

或者使用 HttpParams 发送查询参数:'

import { HttpClient, HttpParams } from '@angular/common/http';
getMnosList() {
        var simboxid = this.getItem.id;
 let params = new HttpParams().set('simboxid', simboxid);
        return this.http.get(`${environment.apiUrl}/MNO`, { params: params } )
 .pipe(map(this.extractData)),
                       this.catchError);
private extractData(res: any): any {
        return res.data || []; // or do what needs to be done
    }
private catchError = (observable: Observable<any>): Observable<never> => {
        return <Observable<never>>observable.pipe(catchError((error: any) => {
            return observableThrowError(error || 'Server error');
        }));
    }

在您的组件中,只需订阅服务:

this.mList.getMnosList().subscribe(data => { this.mnos = data })

最新更新