繁体   English   中英

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

[英]How to get HTTP id from angular and send it to 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;
      });

mno.ts

 export interface mno{
     id;
     name;}

在java中:

@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,因为这两个表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 })

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM