簡體   English   中英

如何將多個對象從Angular2發送到Java Spring后端

[英]How to send multiple objects from Angular2 to Java Spring backend

我正在嘗試將Angular 2中的兩個對象( CustomerAcctProduct )發送到靜態服務(Java Spring)。 我正在使用一個名為CustProduct的包裝對象,其中有兩個對象CustomerAcct和Product。 后端CustomerAcct對象以某種方式為null,但Product對象不是。

這是我的代碼:

界面:

CustProduct類別:

export class CustProduct { public ca: CustomerAcct; public prod: Product }

服務:

addProductToCustomer(cp: CustProduct): Observable<Boolean> {

     let body = JSON.stringify(cp);
     let headers = new Headers({'Content-Type': 'application/json'});
     let options = new RequestOptions({ headers: headers });
     let url = 'my-url';

     return this.http.post(my-url, body, options)
                     .map(this.extractData)
                     .catch(this.hadnleError);
}

后端代碼:

java classes:
@Entity
@Table(name="CUSTOMER_ACCT")
public class CustomerAcct {
    @Id
@Column(name="CUSTOMER_ACCT_ID")
private long CUSTOMER_ACCT_ID;
@Column (name="CUSTOMER_NAME")
private long CUSTOMER_NAME;

other additional fields
}

@Entity
@Table(name="PRODUCT")
public class Product {
@Id
@Column(name="PRODUCT_ID")
private long PRODUCT_ID;
@Column(name="PROD_DESC")
private String PROD_DESC;

other additional fields
  }

public class CustomerProduct {
CustomerAcct customerAcct;
Product product;
}

public boolean addProductToCustomer(@RequestBody CustomerProduct cp) {
       CustomerAcct ca = cp.customerAcct;
       Product prod = cp.product;

       // Here CustomerAcct is null, but I do see data in Product object
}

我不明白為什么它會丟棄CustomerAcct對象。 如果我自己在@RequestBody發送CustomerAcct對象,則它有效,但在包裝對象中不起作用。 我在GUI和后端上的類定義是相同的。

感謝您的幫助。

您正在使用簡單的JSON轉換,這意味着在JSON對象中,您的密鑰是caprod 默認情況下,Jackson期望鍵與字段名稱匹配,即customerAcctproduct 最簡單的方法可能是使用@JsonField("ca")注釋Java字段。 (或者,您可以使用Java或JavaScript重命名屬性。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM